使用 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"
.
我可以稍后用 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"
.