次のコマンドを使用してプログラムを並列に開始しました。
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