我有一个需要在后台运行的脚本,如果我在前台运行相同的脚本,该脚本运行良好,并且在我们手动中断(ctrl^c)之前它不会停止。
我确信以下命令在后台运行脚本。
sudo -u webs ./spagent_L1 &
执行上述命令后,它将给出作业号和进程号。
[1] 10118
之后,如果我按两次 Enter 键,作业就会停止。
[1]+ Stopped sudo -u webs ./spagent_L1
if I check the jobs running in background it shows that the job has been stopped.
$> jobs
[1]+ Stopped sudo -u webs ./spagent_L1
而如果我检查进程正在运行,它会显示上述脚本正在运行。
$> ps -eo user,ppid,pid,cmd,state | grep -i spagent
root 10118 9383 0 05:42 pts/1 00:00:00 sudo -u webs ./spagent_L1 T
ape 10122 3983 0 05:42 pts/1 00:00:00 grep -i spagent R
除非我终止进程 10118,否则 jobs 命令会显示该进程已停止的输出。一旦进程被终止,jobs 命令就不会返回任何内容。
那么,上面的输出是否意味着进程仍在运行?谁能帮助我了解那里发生的事情。以及如何在后台运行脚本而不停止它。
提前致谢。
答案1
您可以通过执行以下操作在后台运行该脚本:(sudo -u webs ./spagent_L1 &)
然后您应该能够关闭终端(如果您在 DE 中)而不关闭该脚本。