SSH에서 백그라운드로 실행하기(세션이 종료되어도 유지)
SSH에서 작업을 하다보면 장기간 작업을 해야하는 경우가 있다.
그러나, 그렇다고 작업을 위해 장기간 SSH세션을 유지해야할수는 없는 노릇이기 때문에 아래의 명령어가 존재한다.
# nohup <process> &
nohup이라는 명령어를 사용하면 세션이 종료되어도 해당 작업을 유지하게 된다. nohup에 대한 자세한 설명은 아래와 같다.
※ nohup은 HUP(hangup) 신호를 무시하도록 만드는 POSIX 명령어이다. HUP 신호는 전통적으로 터미널이 의존 프로세스들에게
로그아웃을 알리는 방식이다.
일반적으로 터미널로 향하는 출력은 별도로 넘겨주기 처리를 하지 않았을 경우 nohup.out이라는 이름의 파일로 출력된다.
출처 : https://ko.wikipedia.org/wiki/Nohup
&의 뜻은 Background에서 실행하겠다는 의미로 장기간 작업의 경우 Foreground에서 실행하게 되면 다른 작업을 하지 못하는 경우가 발생한다.
때문에 &옵션을 주어 다른 작업을 할수 있게 만든다.
# jobs
위의 명령어를 통해 현재 백그라운드에서 작업 중인 프로세스에 대한 정보를 확인할 수 있고,
# fg % <processID>
명령어를 통해 다시 Foreground로 실행 시킬 수 있다.
마찬가지로 Foreground에서 실행하는 명령어를 Background에서 실행을 원할경우
Ctrl + z 를 입력하여 해당 프로그램을 중지 시킨 후,
# jobs
위의 명령어로 프로세스 확인후
# bg % <processID>
명령어를 통해 백그라운드로 다시 작업시킬 수 있다.