linux - 如何获取后台进程的进程ID?

我从我的 shell 脚本启动了一个后台进程,我想在我的脚本完成后终止这个进程。

如何从我的 shell 脚本中获取此进程的 PID?据我所见,变量 $! 包含当前脚本的 PID,而不是后台进程。

最佳答案

需要在启动时保存后台进程的PID:

foo &
FOO_PID=$!
# do other stuff
kill $FOO_PID

您不能使用作业控制,因为这是一项交互功能并且与控制终端相关联。脚本不一定要连接终端,因此作业控制不一定可用。

https://stackoverflow.com/questions/1908610/

相关文章:

c - Linux 中对 pthread_create 的 undefined reference

python - 超出相对导入中的顶级包错误

c - 什么是 LD_PRELOAD 技巧?

python - 如何在 Python 中实现 Softmax 函数

python - 映射python字典中的值

linux - Linux 内核中可能/不太可能的宏是如何工作的,它们有什么好处?

linux - 如何让 grep 打印每个匹配行下方和上方的行?

python - 为什么 PEP-8 指定最大行长度为 79 个字符?

linux - 如何在启动时运行 shell 脚本

python - 使用多处理 Pool.map() 时无法 pickle