我已经使用以下命令并行启动了一个程序:
nohup mpirun -7 mylongprogram.py &
我现在想终止该程序。当我想通过命令杀死进程时:
kill -9 <PID>
我看到另一个具有不同 PID 的进程已启动。如何杀死整个 mpi 程序并防止 nohup 执行此操作?
答案1
我通常执行此操作的命令是使用:
killall -u [USER]
答案2
我不会强制程序从外部关闭,而是尝试从内部触发干净的退出。例如,在某处创建一个文件,程序定期检查它是否存在,如果存在则自行关闭(相关阅读:https://stackoverflow.com/questions/5433697/termination-all-processes-with-mpi)。
答案3
killall mpirun
或者更具体地针对您的情况:
ps -ef | grep mpirun | grep mylongprogram | awk '{print $2}' | while read p; do kill -9 $p ; done