使用 nohup 进程 ID 杀死

Kill with nohup process ID

我可以稍后用 nohup 终止命令 运行 吗?或者我可以 运行 进程 ID 为 nohup 的 kill 命令吗?

我可以通过使用 nohup 命令获得进程 ID 吗?虽然同时有多个nohup

您不需要 nohup。它正好做了两件事:

  • 附加到 TTY 的任何标准输入、标准输出或标准错误都会被重定向(在标准输入的情况下重定向到 /dev/null,在标准输出和标准错误的情况下重定向到 nohup.out)。
  • nohup 接收到的 HUP 信号不会传播到 child。

第一个与正常的 shell 重定向相同(但是有一个硬编码的目的地,您通常无论如何都不需要)。第二个实现与使用 disown -h 告诉 shell 不要将 HUP 传播到目标 child 相同的目标(这是默认行为,当您的 shell是非交互式的)。

因此,您可以完全避免需要 nohup,例如:

yourcommand </dev/null >/dev/null 2>&1 & yourcommand_pid=$!
disown -h "$yourcommand_pid"

...这让你以后 运行 kill "$yourcommand_pid".