하루종일 실행해야할 스크립트가 있어 프로세스를 백그라운드로 돌려야했다.
아래와 같이 nohup을 사용하면 가능하다.
nohup python3 MyScript.py &
nohup python3 MyScript.py > /dev/null 2>&1 & #표준출력을 설정하지 않을 때
nohup python3 MyScript.py > /tmp/nohup.log 2>&1 & #/tmp/nohup.log로 저장할 때
nohup python3 -u MyScript.py #print한 내용을 로그파일에 포함하고 싶을 때
종료 방법은 아래와 같다.
ps -ef | grep 스크립트명 # PID(첫번째로 나오는 숫자) 확인
kill -9 PID # 백프로세스 삭제
좀 더 자세한 내용은 아래를 참고!
https://joonyon.tistory.com/98
+추가) 필자는 이를 통해 셀레니움을 활용한 크롤링을 백그라운드로 실행했다. 이때 실행 후 콘솔을 닫게되면 크롬 프로그램이 닫히게 되어 에러가 발생한다. 따라서 예외처리는 필수이다.
예외처리를 해도 에러가 발생한다면 driver.close() → driver.quit() 로 변경해보기 바란다. 두 함수의 차이는 아래와 같다.
close(): 현재 사용하는 한 탭만 닫는다.
quit(): 열려있는 모든 탭을 닫는다.
아래와 같이 백그라운드에서 계속 실행되고 있습니다. 😁
반응형
'Engineering 💻 > Cloud' 카테고리의 다른 글
[Airflow] Docker를 활용한 Airflow 구축 (1) | 2022.04.18 |
---|---|
[Docker] Docker-Compose에서 같은 이미지로 여러 컨테이너 생성하기 (0) | 2022.03.30 |
[Docker] 컨테이너와 도커 그리고 쿠버네티스 (0) | 2022.01.18 |
EC2에 Selenium 환경 구축하기 (feat. Chrome, Chrome Driver) (0) | 2022.01.05 |
최초 EC2에 PIP 설치 (0) | 2022.01.05 |