반응형

이름 (NAME)

nohup

 

개요 (SYNOPSIS)

 hangups(세션끊김)이 발생해도 그것에 영향없이 명령어를 계속 실행시키게 하는 명령어다.

 리눅스는 해당 터미널에서 실행한 프로세스들에게 HUP signal을 전달하여 종료시킨다. 이때 HUP signal을 프로세스가 영향을 받지 않도록 하는 명령어가 nohup명령어다.

 nohup 명령어는 표준 출력(standard output)을 nohup.out 파일로 redirection 한다. 터미널이 종료되어도 표준 출력은 nohup.out 파일에 계속해서 기록된다. 그래서 프로세스의 상태를 확인하는데 유용하다. 하지만 필요 이상의 로그를 화면에 출력하면 용량이 커지기 때문에 디스크 낭비가 올 수 있다.

 

예제 (EXAMPLES)

nohup [프로세스] &

[프로세스] 부분에 실행하고자하는 프로그램이나 명령어/쉘 스크립트를 지정하면 된다.

이때 여러분이 작성한 쉘 스크립트를 넣어도 되는데 스크립트 파일의 권한이 755 이상이어야 한다.

 

일반적으로 nohup 명령어를 사용할 때는 백그라운드 작업으로 실행하는 경우가 많기 때문에 뒤에 &를 붙여서 백그라운드 실행이라는 것을 명시해 준다.

$ nohup [프로세스] &

 

nohup.out 파일을 생성하지 않으려면 표준출력과 표준에러를 /dev/null 로 재지향 해주면 된다.

$ nohup [프로세스] 1>/dev/null 2>&1 &

 

1>/dev/null 은 표준 출력을 사용하지 않겠다는 의미이고, 2>&1 은 표준 에러를 표준 출력과 같게 만드는 명령어다.

 

 

nohup으로 실행한 프로세스를 종료하려면 먼저 ps 명령어로 PID를 식별한다.

그리고 kill 명령어를 통해 해당 프로세스를 종료한다.

$ ps -ef | grep [프로세스명]

# PID 식별 후 
$ kill -15 [PID]

# 만약 종료되지 않으면 9 시그널로 종료 (권장하지 않음)
$ kill -9 [PID]

 

출처/읽으면 좋을 것들

https://gracefulprograming.tistory.com/128

 

[Linux] nohup 세션이 끊겨도 계속 실행되도록 해보자

개요 nohup 명령어는 리눅스에서 프로세스를 실행한 터미널의 세션 연결이 끊어지더라도 지속적으로 동작 할 수 있게 해주는 명령어입니다. 기본적으로 터미널에서 세션 로그아웃(logout)이 발생

gracefulprograming.tistory.com

 

반응형