例如,如果我输入 ping one.com,进程将继续运行 - 如果我想停止该进程,我可以输入 Ctrl C,如果我没记错的话,这将完全终止该进程。如果我使用 Ctrl Z 停止它,那么进程是否仍然可以在后台运行?如何发现进程正在运行但无法在终端屏幕上看到的情况?谢谢。
答案1
使用jobs
内置命令查看当前 shell 正在运行的任务。
$ ping google.com >/dev/null 2>&1 &
[1] 32406
$ jobs
[1]+ Running ping google.com > /dev/null 2>&1 &
$ ping google.com
[...]
^Z
[2]+ Stopped ping google.com
$ jobs
[1]- Running ping google.com > /dev/null 2>&1 &
[2]+ Stopped ping google.com
要终止所有正在运行的作业,您可以利用jobs -p
它列出所有作业的 pid。
$ for job in $(jobs -p); do kill $job; wait $job; done
答案2
运行ps -aux | grep "processname"
以查看进程是否正在运行
运行kill "processID"
杀死指定进程,PID是上一个命令中与目标进程一致的第二组数字
运行killall "processname"
以终止具有定义名称的所有进程