터미널 백그라운드 실행 방법
프로세스
실행 중인 프로그램
- 터미널이 실행되면, 셸(Shell)이 실행되고, 셸은 부모 프로세스가 되며 실행되는 명령어들은 자식 프로세스가 된다.
백그라운드 실행 방법
&
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]
댓글남기기