Linux 프로세스 백그라운드에서 실행하기

OpenJR·2022년 12월 16일
0

&

프로세스를 말 그대로 백그라운드에서 실행시키기 위해서는 &를 붙혀주면 된다.

$ [process] &

nohup

프로세스가 백그라운드에서 실행되더라도, 그 프로세스를 실행시킨 터미널을 종료 시키면 백그라운드에서 돌던 프로세스도 종료가 된다. 반쪽짜리 백그라운드이다. 이것을 해결하는 명령어가 nohub이다.
터미널이 종료되면 터미널에서 실행 중이던 프로세스는 HUB Signal을 전달 받아 종료된다.
터미널이 종료되더라도 이 신호를 무시하여 프로세스가 유지될 수 있도록 하는 명령어가 nohub이다.

$ nohub [process] > /dev/null

/dev/null

프로세스가 진행되면 std::cout같은 출력들을 nohub.out라는 파일에 모두 저장하게 되는데, 이걸 하기 싫으면 /dev/null을 넣어주어야 한다.

2>&1

출력이 아닌 에러 출력들은 *.err에 저장되는데 *.err를 만들지 않고 출력이 쓰여지는 파일(*.out)에 한번에 저장하기 위해서 2>&1를 넣어주어야 한다.

백그라운드 실행

$ nohub [process] > /dev/null 2>&1 &
profile
Jacob

0개의 댓글