mark340
착하게살자
mark340
전체 방문자
오늘
어제
  • 분류 전체보기 (98)
    • 백준 (11)
    • 알고리즘 (1)
    • Javascript (17)
    • CS (18)
    • 기타 (9)
    • AI (1)
    • Angular (2)
    • Linux (14)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • parsing
  • MySQL
  • JavaScript
  • oauth
  • Closure

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
mark340

착하게살자

Linux

[Linux] nohup 사용법

2023. 6. 26. 18:51

개요

nohup 명령어는 리눅스에서 프로세스를 실행한 터미널의 세션 연결이 끊어지더라도 지속적으로 동작 할 수 있게 해주는 명령어.


기본적으로 터미널에서 세션 로그아웃(logout)이 발생하면 리눅스는 해당 터미널에서 실행한 프로세스들에게 HUP signal 이 전달하여 종료시키게 되는데, 이 HUP signal을 프로세스가 무시(ignore)하도록 하는 명령어라서 nohup 이라는 이름인 것. 

 

그래서 결과적으로 터미널에서 연결이 끊기거나 터미널을 종료해도 실행했던 프로세스들이 계속 실행될 수 있다.

 

또한 nohup 명령어는 표준 출력(standard output)을 nohup.out 파일로 재지향(redirection) 한다.

 

터미널이 종료되어도 표준 출력은 nohup.out 파일에 계속해서 기록되기 때문에 프로세스의 상태를 확인하는데 유용 할 수 있다. 그러나 필요 이상의 로그를 화면에 계속해서 출력하게 되면 nohup.out 파일의 용량이 매우 커지기 때문에  디스크 공간을 낭비하게 될 수 있다.

 

따라서 꼭 필요한 로그만 출력하거나 로그를 남기는 것이 불필요한 경우 재지향을 통해 nohup.out 파일을 생성하지 않도록 하는 것이 좋다. 

 

 

사용법

 

nohup 명령어의 사용법은 매우 단순하다. 

 

nohup [프로세스] &

 

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

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

 

일반적으로 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]

# 종료되지 않으면 강제 종료 (비권장)
kill -9 [PID]
저작자표시 (새창열림)

'Linux' 카테고리의 다른 글

우분투 Node.js 설치및 npm 환경구축  (0) 2023.06.26
[Docker] Ubuntu 22.04 Docker 설치  (0) 2023.06.26
Node.js/socket.io 소켓 서버 구현시 Nginx SSL 리버스 프록시 설정 방법  (0) 2023.03.09
NestJS aws-EC2 프리티어 micro 배포 에러 및 해결방법  (0) 2023.03.09
Docker 환경에서 MySQL 로그인시 Access denied for user... Error 해결하기  (0) 2023.03.02
    'Linux' 카테고리의 다른 글
    • 우분투 Node.js 설치및 npm 환경구축
    • [Docker] Ubuntu 22.04 Docker 설치
    • Node.js/socket.io 소켓 서버 구현시 Nginx SSL 리버스 프록시 설정 방법
    • NestJS aws-EC2 프리티어 micro 배포 에러 및 해결방법
    mark340
    mark340
    착하게삽시다

    티스토리툴바