سؤال

لدي سيناريو باش mystuff تحتوي على خط مثل

lynx -dump http://example.com >tmpfile

والسيناريو يعمل بشكل جيد، بما في ذلك هذا الجزء، إلا عندما أقوم بتشغيلها غير تفاعلية:

$ ./mystuff &
[1] 3712
$ jobs
[1]+ Stopped

توقف الوظيفة. أجد أن الوشق هو الجاني. حتى تشغيل هذا الأمر مباشرة من موجه bash يؤدي إلى إيقاف المهمة على الفور:

$ lynx -dump http://example.com >tmpfile &
[1] 1836
$ jobs
[1]+ Stopped

لماذا لا تعمل Lynx في الخلفية؟ كيف يمكنني اصلاح هذا؟

تعديل:

أنا أستخدم Lynx لأنني لا أريد أن أضطر إلى تحليل HTML الخام. الفرق بين wget و lynx -dump هو أن الوشق سوف تجعل HTML؛ سوف يخفي جميع العلامات، وترتيب النص بشكل جيد، إلخ.

هل كانت مفيدة؟

المحلول

يريد Lynx التحدث إلى المحطة الطرفية الخاصة بك، ولكن لا يمكن ذلك، بحيث يقوم به SIGSTP (مدخلات TTY) وينتظرك لدمج العملية.

كما قال MGB أعلاه: استخدم WGET. wget -O tmpfile http://example.com يفعل الشيء نفسه ما تفعله مع الوشق أعلاه.

نصائح أخرى

ليس الجواب الذي ترتديه ولكن هل يمكنك فقط استخدام واهن في حين أن؟

على نظامي، يعمل الأمر Lynx الخاص بك كما هو. جرب هذا ونرى ما يحدث:

lynx -dump -term=xterm http://example.com >tmpfile &

لقد حظنا في تشغيل Lynx - Source http_setting: // أيا كان | باش.

تم تشغيل BASH حيث سمح BASH لعملية الخلفية بالتجاوز ببيانات اعتمادي الشخصية ولا تباقل TTY.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top