乐闻世界logo
搜索文章和话题

How to get the process ID to kill a nohup process?

4 个月前提问
2 个月前修改
浏览次数27

1个答案

1

当您运行一个使用 nohup 的进程时,该命令会使得启动的进程忽略所有终止信号,使得进程即使在会话结束后也可以继续运行。如果您需要结束这样一个由 nohup 启动的进程,您可以通过以下步骤来操作:

  1. 查找进程ID(PID):首先您需要找到要终止的进程的PID。如果您知道启动进程时使用的命令,您可以使用 ps 命令加上 grep 来查找。例如,如果您使用 nohup 运行了一个名为 myapp 的程序,您可以运行:

    bash
    ps aux | grep myapp

    这将列出所有包含 myapp 字符串的进程。通常,您可以在输出的第二列找到PID。

  2. 终止进程:一旦您得到了进程的PID,您可以使用 kill 命令来终止这个进程。如果正常的终止信号(SIGTERM,默认信号)没有效果,您可以尝试发送 SIGKILL 信号,这是一个强制终止信号,几乎可以终止所有的进程:

    bash
    kill -9 PID

    PID 替换成您在第一步中找到的进程ID。

示例

假设您运行了一个使用 nohup 的命令如下:

bash
nohup python myscript.py &

然后您想终止这个进程,您可以执行以下步骤:

  1. 查找进程:

    bash
    ps aux | grep myscript.py
  2. 假设找到的PID是1234,终止进程:

    bash
    kill -9 1234

这样,即使进程是用 nohup 启动的,您也可以成功地终止它。

2024年7月12日 16:43 回复

你的答案