通过 PID 停止作业?

通过 PID 停止作业?

有人可以告诉我为什么在指定 PID 时我无法杀死下面的作业吗?我可以在使用 % id 时停止作业。

Mac:~gd$ ps

PID TTY 时间 CMD

4523 ttys000 0:00.02-bash

4560 ttys000 0:00.00 GP

4609 ttys000 0:00.00 GP

Mac:~ gd$ 杀死 4560

Mac:~ gd$ 杀死 4609

Mac:~gd$ 退出

登出

有停止的工作。

Mac:~ g$ 工作

[1]- 停止 gpg

[2]+ 停止 gpg

Mac:~ gd$ 杀死 %1

gpg:信号已终止捕获...正在退出

答案1

因为kill %n将运行 shell 内置命令,这将确保发送停止的作业,SIGCONT以便它们能够意识到它们已被杀死。

要通过已停止作业的 PID 来实现这一点,您需要:

kill $pid 

(或者kill -TERM $pid如果你想让它明确)

进而

kill -CONT $pid 

-CONT如果你追求终极凶器,你就不需要:

kill -KILL $pid

相关内容