Welcome! 🙋‍♂️ View more

Engineering 💻/Cloud

터미널 종료 후에도 프로세스 실행 (feat. Selenium 작동시 유의사항)

DeepFlame 2022. 1. 5. 23:39

 

하루종일 실행해야할 스크립트가 있어 프로세스를 백그라운드로 돌려야했다.

아래와 같이 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

 

쉽게 설명한 nohup 과 &(백그라운드) 명령어 사용법

안녕하세요. 린아저씨 입니다. 리눅스를 사용하다 보면 프로그램을 백그라운드에서 세션과의 연결이 끊어져도 돌려야할 일이 많이 발생합니다. 그럴때 주로 사용하는 명령어가 바로 nohup 과 &

joonyon.tistory.com


+추가) 필자는 이를 통해 셀레니움을 활용한 크롤링을 백그라운드로 실행했다. 이때 실행 후 콘솔을 닫게되면 크롬 프로그램이 닫히게 되어 에러가 발생한다. 따라서 예외처리는 필수이다.

예외처리를 해도 에러가 발생한다면 driver.close() → driver.quit() 로 변경해보기 바란다. 두 함수의 차이는 아래와 같다.
close(): 현재 사용하는 한 탭만 닫는다.
quit(): 열려있는 모든 탭을 닫는다.

아래와 같이 백그라운드에서 계속 실행되고 있습니다. 😁