[Shell Script] nohup으로 실행한 프로세스 종료

zekim·2021년 5월 24일
0

[Shell Script]

목록 보기
2/2

이전 포스트에서 딥러닝 훈련 시 다양한 하이퍼파라미터에 대한 실험을 진행하기 위한 bash 파일을 만들고, 이를 실행하는 법을 다뤘다.

bash 파일 작성 및 실험 링크

일반적으로 터미널에서 ctrl+c를 누르면 종료할 수 있지만, 백그라운드로 돌리게되면 이 방법으로 실험을 종료하기는 힘들다.

또한, 다양한 하이퍼파라미터에 대해서 백그라운드로 돌리는 중이라면, kill -9 PID(실행중인 프로세스 넘버) 명령어를 실행해도 현재 돌고있던 하이퍼파라미터 조합에 대해서만 종료될 뿐 bash 파일 전체가 종료되지는 않는다.

다음과 같은 과정을 따르면 쉽게 종료할 수 있다.

먼저, bash 파일 프로세스 넘버를 찾기 위해 다음 명령어를 입력한다.
ps -ef | grep train.sh (bash파일 이름)
이렇게 하면 train.sh bash파일에 대한 프로세스 넘버를 검색할 수 있다.

그 다음
kill -9 bash_PID (검색된 bash파일 프로세스 넘버)
이 명령어를 수행하면 bash파일 프로세스가 종료된다.

하지만, 여전히 nvidia-smi를 수행하면 실험이 진행되고 있음을 볼 수 있다.
이는 bash파일 프로세스가 종료된 것이지 현재 돌고 있던 실험이 종료된것은 아니기 때문이다.

따라서, 다시한번 현재 실험에 대한 PID 검색을 진행한다.
ps -ef | grep train.py(bash 파일안에 실행중이던 파일)
또는, nvidia-smi로 PID 확인

위와 동일하게 kill -9 train_PID (검색된 실행파일 프로세스 넘버)를 입력해주면 프로세스가 모두 종료된 것을 확인할 수 있다!

0개의 댓글