سودو نوهوب لطيف < - بأي ترتيب؟
سؤال
لذلك لدي نص أريد تشغيله كجذر ، دون تعليق ولطيف. ما الترتيب الذي يجب أن أضعه فيه؟
Sudo Nohup nice foo.bash &
أو
nohup nice sudo foo.bash &
إلخ.
أظن أن هذا لا يهم ولكنه أرغب في نظرة ثاقبة من أولئك الذين حقًا أعرف.
المحلول
إذا كان اللطف السلبي مطلوبًا ، فسأفعل: أمر Sudo Nohup Nice لأنه وفقًا لـ "المعلومات الأساسية" مسبق لطيف. إذا كنت أرغب في الحصول على قيمة سالبة لطيفة ، فيجب أن يأتي Sudo من قبل ، لأن الجذر فقط قادر على استخدام القيم اللطيفة السلبية.
إذا كان اللطف الإيجابي مطلوبًا ، فسأفعل ببساطة: NOHUP NICE SUDO أمر يضمن عدم تشغيل NOHUP و NICE مع امتيازات الجذر.
نصائح أخرى
قد لا يحترم سودو اللطف. على الأقل ، لا على جهازي (Ubuntu 9.04). تشغيل هذا:
nice sudo nice
sudo nice nice
يطبع 0 و 10. (لاحظ أن "لطيف" بدون أمر يطبع اللطف الحالي.)
يجب أن يستمر Sudo حتى لا يتم تشغيل Nohup و Nice مع امتيازات الجذر.
لذلك الأخير
~ $ sudo nohup nice whoami
nohup: ignoring input and appending output to `nohup.out'
~ $ sudo cat nohup.out
root
الفرق بين الطريقة الأولى والثانية التي قمت بها هو من يملك ملف nohup.out. sudo
أولاً سيجعلها مملوكة للجذر ، nohup
قبل أن تجعل Sudo مملوكة للمستخدم.
تعارض مع إجابات أخرى. انصح:
sudo nohup nice foo.sh
لقد لاحظت Nohup سودو #يفشل -لا يتم نقل nohup دائمًا إلى عمليات Sudo'd Sub-Sub-Subs (كان هذا مؤكدًا /etc/init.d على Ubuntu التي فوضت حتى الآن البرامج النصية الأخرى). لست متأكداً من السبب ، من المدهش بالتأكيد ، ولكن كان الحال وأخذت لعبة جيدة أثناء تصحيحها.
(ألاحظ أن الآخرين يذكرون أن اللطف لا يتم إقراره ، لذلك يبدو من الأفضل وضعه في النهاية ... على الرغم من أنه إذا كان من الشك على نظام التشغيل الخاص بك لطيفًا في وقت مبكر ، لأن من الجيد عدم سريانه عادةً ما يكون مشكلة أقل من عدم ساري المفعول!)
لاحظ أن سودو نوهوب يترك nohup.out مملوكة لـ Root ، كما تم ذكره أيضًا ، لكن هذا ثابت مع:
sudo nohup nice foo.sh >> /tmp/foo.stdout.log 2>> /tmp/foo.stderr.log
أعتقد أن جميعهم يقومون بعمل exec* syscall لتمرير الكرة إلى الكلام التالي ، لذلك ، مهما كان الأمر ، فلن يترك أي عمليات معلقة.
أود أن أقول أن Nohup يجب أن يكون آخر حتى لا يلتزم الاثنان الآخران بوجه الإشارة. (أنا متأكد من أن Nice لا تلعب بإشارات ، لكن Sudo يفعل ذلك.)
ثم ، Sudo و Nice ، كل هذا يتوقف على الطريقة التي تريد تغيير أولوية الجدولة مع Nice.
- إذا كنت ترغب في رفع الأولوية (أي ، أعط قيمة سلبية لـ NICE) افعل Sudo من قبل.
- إذا كنت ترغب في خفض الأولوية (إعطاء قيمة إيجابية لطيفة) افعلها قبل Sudo ، حيث لا تحتاج إلى امتيازات الجذر.