sudo nohup很好< - 以什么顺序?

问题描述:

所以我有一个脚本,我想以root身份运行,没有挂断和很好。我应该使用什么命令?sudo nohup很好< - 以什么顺序?

须藤nohup的不错foo.bash &

nohup这个漂亮的须藤foo.bash &

我怀疑这并不重要,但想从一些有识之士那些真的知道。

,我会做: 须藤nohup的不错命令 因为根据'信息的coreutils'的nohup应该preceed不错。如果我想要一个不错的值,sudo必须早于此值,因为只有root可以使用负值。

如果需要正面的好看,我会这么做: nohup nice sudo命令 这确保nohup和nice不以root权限运行。

sudo应该最后一次,以便nohup和nice不以root权限运行。

因此后者

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

你所做的第一和第二种方法之间的差异是谁拥有nohup.out文件中。 sudo首先会使其拥有root,nohup sudo将使其拥有您的用户。

我想他们都会用exec * syscall来传递球给下一个球,所以,无论顺序如何,它都不会留下任何挂起的进程。

我会说nohup应该是最后的,以便两个其他不clober信号处理程序。 (我敢肯定好看不打信号,但须藤确实。)

然后,须藤和漂亮,这一切都取决于你想用漂亮的改变调度优先级哪种方式。

  • 如果你想提高优先级(也就是说,给一个负值很好)做sudo之前。
  • 如果你想降低优先级(给漂亮正值)须藤之前做到这一点,因为你并不需要root权限。
+0

感谢您的答复。你能详细谈谈sudo玩信号吗? (或者只是提供一个链接:)谢谢! – 2008-12-08 21:59:14

sudo可能不尊重善意。至少,它不在我的机器上(Ubuntu 9.04)。运行:如果负正派所需

nice sudo nice 
sudo nice nice 

打印出0到10(需要注意的是“好”,没有命令打印出当前正派)

+0

其他每个答案都会错误。 Debian Squeeze是一样的:漂亮不会贯穿`sudo`。这也是一个耻辱,因为细粒度的sudoers会阻止允许运行的命令。 – 2012-06-01 21:54:10

不同意与其他的答案。我建议:

sudo nohup nice foo.sh

我观察nohup的须藤#fail - 即nohup的不总是传送到sudo'd子子过程(这是对某些的/ etc /初始化。 Ubuntu上的脚本被委托给其他脚本)。不知道为什么,肯定令人惊讶,但是是这样,并花了很长时间才调试。 (我注意到其他人报告没有被传递好,所以似乎最好把它放在最后......虽然如果您的操作系统怀疑早点放好,因为好的没有生效通常不是没有问题的问题,而不是nohup不是生效)

注意须藤nohup的叶的nohup.out由root拥有,也可作为已经提到,但是这固定有:

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