Вопрос

Так что у меня есть сценарий, который я хочу запустить как корень, без повествования и красиво. В какой заказ мне следует поместить команды?

Sudo nohup хороший foo.bash &

или же

nohup хороший sudo foo.bash &

и т.п.

Я подозреваю, что это не имеет значения, но хотелось бы получить представление о тех, кто В самом деле знать.

Это было полезно?

Решение

Если желательно негативная приятность, я бы сделал: Sudo nohup Nice Command, потому что, согласно `info coreutils 'nohup, должен предстоящий отлично. Если я хочу отрицательную хорошую ценность, Sudo должен прийти раньше, так как только root может использовать отрицательные значения NICE.

Если желательна позитивная приятность, я бы сделал просто: Nohup Nice Sudo Command, это гарантирует, что Nohup и Nice не работают с привилегиями Root.

Другие советы

Sudo не может уважать милость. По крайней мере, это не на моей машине (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 Сначала сделает его принадлежащим root, nohup Прежде чем Sudo сделает его принадлежащим вашему пользователю.

Не согласен с другими ответами. Я рекомендую:

sudo nohup nice foo.sh

Я заметил NOHUP SUDO #потерпеть неудачу -IE NOHUP не всегда передается в SUDO'D Sub-Processes (это было для определенных сценариев /etc/init.d на Ubuntu, которые делегировали в другие сценарии). Не уверен, почему, безусловно, удивительно, но был так, и у меня было хорошо, чтобы отлаживать.

(Я отмечаю, что другие сообщают о том, что приятность не проходит, поэтому, кажется, лучше всего выразить это ... хотя, если вы сомневаетесь в вашей ОС, ранее, потому что приятно не вступить в силу, как правило, меньше проблемы, чем NOHUP, не вступая в силу!)

Обратите внимание, что Sudo nohup оставляет nohup.out, принадлежащий root, также, как было упомянуто, но это исправлено:

sudo nohup nice foo.sh >> /tmp/foo.stdout.log 2>> /tmp/foo.stderr.log

Я предполагаю, что все они делают исполнительного* syscall, чтобы передать мяч следующему, так что, независимо от того, что порядок, он не оставит никаких висящих процессов.

Я бы сказал, что Нохуп должен быть последним, чтобы двое других не подали обработчик сигнала. (Я уверен, что милый не играет с сигналами, но Sudo.)

Тогда, Sudo и Nice, все зависит от того, каким образом вы хотите изменить приоритет планирования с помощью NICE.

  • Если вы хотите поднять приоритет (то есть, дайте отрицательную ценность NICE) DO SUDO раньше.
  • Если вы хотите снизить приоритет (дайте хорошую положительную ценность) сделайте это перед Sudo, так как вам не нужны корневые привилегии.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top