gpt4 book ai didi

bash - 在脚本中杀死进程

转载 作者:行者123 更新时间:2023-11-29 09:32:21 24 4
gpt4 key购买 nike

我遇到了我正在使用的某个应用程序的奇怪行为。如果我在 bash 的后台启动命令,我可以使用

$ command &
$ kill -n 2 [PID of command]
killing command gracefully

但是,当我将其放入脚本中时:

command &
ID=$!
kill -n 2 $ID

它根本没有做任何事情。我是否遗漏了一些微妙的地方?

编辑:另一个线索是,一旦脚本停止运行,我就无法使用 kill -n 2 终止命令。

最佳答案

人 7 信号您正在向您的进程发送信号 2,INT,即来自键盘的中断,为什么?人们说要发送信号 1,为什么?

终止进程的标准优雅方式是信号 15,终止信号,这是 kill 使用的默认值。

所以只需使用 kill "$PID"

然后,如果你的进程运行子进程,你不只是想杀死父进程,而是想杀死它们,所以使用“-$PID”而不是“$PID”来杀死整个进程组, 但 kill 会认为 -"$PID"是一个信号编号,它会提示,所以你必须更精确,因为:

kill -15 -"$PID"

如果程序不想死,就用kill -9 -"$PID"

man 7 signal
man kill

关于bash - 在脚本中杀死进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4329702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com