다음 명령을 사용하여 프로그램을 병렬로 시작했습니다.
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