프로세스

실행 중인 프로그램

  • 터미널이 실행되면, 셸(Shell)이 실행되고, 셸은 부모 프로세스가 되며 실행되는 명령어들은 자식 프로세스가 된다.

백그라운드 실행 방법

  1. &
  2. nohup

&

& 명령어는 실행된 프로세스는 여전히 부모 프로세스(쉘)의 자식으로 남아 있으며, 쉘이 종료(=세션이 끊겼다)되면 &로 실행한 백그라운드 프로세스도 종료된다.

nohup

nohup 명령어는 해당 프로세스를 현재 셸로부터 분리시켜, 쉘이 종료되어도 프로세스가 종료되지 않게 한다.

정확히 nohup으로 실행된 프로세스는 부모 프로세스가 init(PID=1)이라는 프로세스로 바뀌게 되어 쉘이 종료되어도 죽지 않고 실행된다.

또한 사용시 자동으로 표준 출력과 표준 에러에 대해서 nohup.out파일이 생성된다.

사용방법

  • 1 : 표준 입력
  • 2 : 표준 에러
  • /dev/null : 쓰레기통에 버리는 것과 비슷

아래 명령어를 해석해보자면, 해당 명령어가 종료되지 않게해주며 표준 입력과 표준 에러는 전부 쓰레기통으로 보내 nohup.out파일을 생성하지 않고 해당 명령어에 대해 백그라운드로 실행해줘

$ nohup [명령어] 1>/dev/null 2>&1 &

프로세스 종료 방법

$ ps -ef | grep [명령어]

강제 종료

$ kill -9 [PID]

태그:

카테고리:

업데이트:

댓글남기기