如何知道过程是否设置为NOHUP?

时间:2014-02-26 03:09:17

标签: linux bash unix process

使用作业我知道该过程正在运行。

bash-4.2$ jobs
[1]+  Running                 test.sh &

我希望它设置为NOHUP,以便在退出时不会被杀死。我用了

disown

bash-4.2$ jobs

什么都没有。我不确定该过程是否设置为NOHUP。我对此感到好奇,因为在我阅读了手册后,它说了

disown -h

应该用于设置NOHUP。

修改

我认为链接Find the Process run by nohup command没有帮助。问题与那个问题不同。

我要重述我的问题。我运行一个没有nohup的程序,后来我想把它设置为NOHUP,这样当我退出系统时它不会被杀死。所以我使用了disown,但后来我发现手册说我应该用disown -h来设置NOHUP。我想检查我的进程是否设置为NOHUP成功。如果没有,我该怎么办才能把它设为NOHUP?

1 个答案:

答案 0 :(得分:0)

<强>更新

我知道有两种方法可以提供帮助:

1)每当进程在nohup上运行时它会在〜/ nohup.out上写入输出。因此,您可以通过运行命令find -cmin 2来检查此文件。它会显示nohup.out是否每2秒更改一次。 如果它正在改变,你会理解...... nohup命令正在运行,之后你可以使用lsof进行检查并继续检查......

2)如果您从特定用户退出并发送到tty然后执行ps aux | grep <user>ps aux | grep ?,那么您可以了解运行nohup命令的情况。因为没有pts然后它会显示而不是......

有用的命令:

ps aux | grep <program> | awk -F" " '{print $7}'

希望有所帮助