Подтвердить что ты не робот

Sudo nohup nice <- в каком порядке?

Итак, у меня есть script, который я хочу запустить как root, без зависания и красиво. Какой порядок я должен поместить в команды?

sudo nohup nice foo.bash &

или

nohup nice sudo foo.bash &

и др.

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

4b9b3361

Ответ 1

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

Если желательна хорошая приятность, я бы сделал просто: команда nohup nice sudo Это гарантирует, что nohup и nice не будут запускаться с привилегиями root.

Ответ 2

sudo может не уважать доброту. По крайней мере, это не на моей машине (Ubuntu 9.04). Выполнение этого:

nice sudo nice
sudo nice nice

выводит 0 и 10. (Обратите внимание, что "nice" без команды выводит текущую приятность.)

Ответ 3

sudo должен длиться так, чтобы nohup и nice не выполнялись с привилегиями root.

так что последний

Ответ 4

~ $ sudo nohup nice whoami
nohup: ignoring input and appending output to `nohup.out'
~ $ sudo cat nohup.out 
root

Различие между первым и вторым способом, которым вы это сделали, - это тот, кому принадлежит файл nohup.out. sudo сначала сделает его владельцем root, nohup, прежде чем sudo сделает его принадлежащим вашему пользователю.

Ответ 5

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

sudo nohup nice foo.sh

Я заметил nohup sudo #fail - то есть nohup не всегда передается суб-подпроцессам sudo'd (это было для определенных скриптов /etc/init.d на Ubuntu, которые делегировали к другим скриптам). Не уверен, почему, конечно, удивительно, но это было так и взяло хороший wee, пока отлаживать.

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

Обратите внимание, что sudo nohup оставляет nohup.out, принадлежащим root, также, как уже упоминалось, но исправлено с помощью:

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

Ответ 6

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

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

Затем, sudo и nice, все зависит от того, каким образом вы хотите изменить приоритет планирования с помощью nice.

  • Если вы хотите повысить приоритет (то есть дать отрицательное значение хорошему), сделайте sudo раньше.
  • Если вы хотите снизить приоритет (дайте положительное значение), сделайте это до sudo, так как вам не нужны привилегии root.