【问题标题】:How to know if the process is set NOHUP?如何知道进程是否设置了NOHUP?
【发布时间】:2014-02-26 03:09:16
【问题描述】:

使用我知道进程正在运行的作业。

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?

【问题讨论】:

  • @jaypal 我已经阅读了该主题,但我仍然不知道ps 的哪一列显示是否设置了 NOHUP?它没有说明我正在寻找的答案。
  • 我给出了答案..希望对您有所帮助
  • @Marcus Thornton 我更新了 mu 答案..请参阅答案

标签: linux bash unix process


【解决方案1】:

更新

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

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}'

希望对你有所帮助

【讨论】:

  • 我看不到 jobs 的任何输出,但 ps -ef 仍然显示 pid。这是什么意思?我想知道进程是否设置为 NOHUP。
  • super userunix&amp;linux 上提问...你可以在那些问答中找到它
  • 我知道我可以使用nohup 来设置NOHUP。我在这里的问题是如何检查调度的进程是否设置了 NOHUP。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-24
  • 1970-01-01
  • 1970-01-01
  • 2011-06-17
  • 2016-10-20
  • 2017-10-07
相关资源
最近更新 更多