我有一个尝试用 nohup 运行的脚本:
nohup /home/user/script.sh&
如果我运行 ps -a 我仍然可以看到该进程,但如果我关闭终端并再次运行 ps -a 则该进程不存在。这应该发生吗?我想在后台运行该脚本。
谢谢
答案1
这是因为该进程是通过您当前所在的终端生成的,并且您的 & 正在将其放入该终端的后台。
执行 a ps faux
,您可以看到该进程的族谱,并注意它是如何从您当前所在的终端生成的。如果您终止该终端进程,您也会终止所有子进程,例如当前正在运行的子进程脚本。
替代方法是使用类似tmux
或 的东西screen
在后台会话中运行脚本,将其作为 cronjob 运行,或者通过 init 系统为其创建一个单元文件来对其进行守护进程。