如何杀死作为守护进程启动的进程?

如何杀死作为守护进程启动的进程?

我使用 启动一个进程foo &

它输出类似:

[1] 16915

我猜这是进程ID。如何将此数字存储到名为MY_PROCESS_ID(例如)的变量中?

然后我可以这样做:

kill $MY_PROCESS_ID

我的进程ID将被杀死。

答案1

foo &
bg_pid=$!
kill "$bg_pid"

您还可以将 shell 的内部命令与作业编号kill(至少在 的情况下)一起使用:bash

foo &
kill %1

但这可能并不容易。交互可能更容易。但与

kill %+

或者

kill %

你总是得到最后一个。您甚至可以通过部分命令行来识别要终止的作业。看man bash;搜索该块JOB CONTROL

答案2

$!如果最后一个进程在后台启动,则该变量是 PID。你会这样做:

foo &
my_process_id=$!

: other stuff ...

kill "$my_process_id"

相关内容