昨晚我通过 nohup 在集群上启动了一个命令,然后关闭了连接。今天我想终止这个作业(我知道它仍在运行,因为输出是在输出文件中生成的),但我什至无法确定它的 PID。例如,如果我输入ps -ax
,我的可执行文件的名称不会显示。只需输入ps
只会显示我已启动此登录会话的可执行文件。
有什么建议么?
答案1
尝试jobs
命令,如果您可以看到它,请记下作业编号,然后kill -9 %job_number_you_recorded
答案2
您可以使用它lsof
来查找打开该输出文件的 pid。
答案3
您还记得该过程的名称吗?尝试列出:
ps aux | grep -i $your_process_name
如果您发现该进程,您可以使用($pid =第二列)轻松杀死它:
kill -9 $pid
您不会在当前会话中找到该进程,nohup
执行给定的程序然后将该程序从您的终端分离。这个无父进程的父进程现在将是 init 进程(PID #1)。您可以使用以下命令看到这一点:
pstree -a
如果您确定给定进程只有一个实例正在运行,您可以使用以下命令轻松终止:
killall -9 $process_name
例如:
killall -9 nano