当您运行一个使用 nohup
的进程时,该命令会使得启动的进程忽略所有终止信号,使得进程即使在会话结束后也可以继续运行。如果您需要结束这样一个由 nohup
启动的进程,您可以通过以下步骤来操作:
-
查找进程ID(PID):首先您需要找到要终止的进程的PID。如果您知道启动进程时使用的命令,您可以使用
ps
命令加上grep
来查找。例如,如果您使用nohup
运行了一个名为myapp
的程序,您可以运行:bashps aux | grep myapp
这将列出所有包含
myapp
字符串的进程。通常,您可以在输出的第二列找到PID。 -
终止进程:一旦您得到了进程的PID,您可以使用
kill
命令来终止这个进程。如果正常的终止信号(SIGTERM
,默认信号)没有效果,您可以尝试发送SIGKILL
信号,这是一个强制终止信号,几乎可以终止所有的进程:bashkill -9 PID
将
PID
替换成您在第一步中找到的进程ID。
示例
假设您运行了一个使用 nohup
的命令如下:
bashnohup python myscript.py &
然后您想终止这个进程,您可以执行以下步骤:
-
查找进程:
bashps aux | grep myscript.py
-
假设找到的PID是1234,终止进程:
bashkill -9 1234
这样,即使进程是用 nohup
启动的,您也可以成功地终止它。
2024年7月12日 16:43 回复