sudo nohup nice < - 按什么顺序?
题
因此,我有一个脚本,我想作为root运行,而无需挂起并且很好。我应该放入什么顺序?
sudo nohup nice foo.bash&
或者
nohup nice sudo foo.bash&
等等
我怀疑这没关系,但是希望从那些人那里得到一些见解 真的 知道。
解决方案
如果需要负面的问题,我会做:sudo nohup nice命令,因为根据“信息coreutils” Nohup应该 早期 好的。如果我想要一个负值的值,那么sudo必须以前出现,因为只有root才能使用负良好值。
如果需要积极的善意,我会简单地做:Nohup nice sudo命令确保Nohup和Nice不会具有根特权。
其他提示
Sudo可能不尊重NICES。至少,它不在我的机器上(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 Sudo #失败 - IE Nohup并不总是转移到Sudo'd Sub-Sub-processes(这是针对Ubuntu上的某些/etc/init.d脚本,该脚本已委派给其他脚本)。不确定为什么,当然令人惊讶,但是是这种情况,并且在调试时花了很多时间。
(我注意到其他人报告没有传递的好处,所以最好把它持续下去……尽管如果对您的操作系统有疑问,请更早地提早,因为不善于生效通常比Nohup没有生效!)
注意 Sudo Nohup 如前所述,也剩下root拥有的nohup。
sudo nohup nice foo.sh >> /tmp/foo.stdout.log 2>> /tmp/foo.stderr.log
我想他们所有人都会做一个执行人* syscall将球传给下一个球,因此,无论订单如何,它都不会留下任何悬挂的过程。
我会说Nohup应该是持久的,以便其他两个不关闭信号处理程序。 (我敢肯定,不错的情况不会使用信号,但是苏多会发出信号。)
然后,苏多(Sudo)和尼斯(Nice),这完全取决于您要使用NICE更改计划优先级的方式。
- 如果您想提高优先级(即,对nice给出负值)。
- 如果您想降低优先级(给予良好的正值)在sudo之前做到这一点,因为您不需要根特权。