관리 메뉴

피터의 개발이야기

[Linux] 프로세스 백그라운드 실행방법: &, nohub 본문

Linux

[Linux] 프로세스 백그라운드 실행방법: &, nohub

기록하는 백앤드개발자 2024. 10. 15. 01:21
반응형

ㅁ 들어가며

ㅇ Linux에서 프로그램을 백그라운드로 실행하는 방법에 대해 정리하였다. 

 

ㅁ 백그라운드 실행의 필요성

 크롬 브라우저에서 여러 페이지를 보기 위해서는 탭이 필요하다. 탭을 통해 하나씩 페이지를 볼 수 있고, 보지 않는 나머지 페이지는 탭으로 구분되어 백그라운드에서 실행되고 있다. 한 화면에서 여러 작업을 동시에 수행하기 위해 백그라운드 작업은 필요하다. 

  linux의 커널을 통해 여러 프로세스를 수행하기 위해 백그라운드로 실행할 수 있다. 그러면 한 세션을 통해 여러 작업을 동시에 처리할 수 있게 된다. 

 

ㅁ 기본 백그라운드 실행

command &

ㅇ 프로그램을 백그라운드로 실행하려면 명령어 뒤에 앰퍼샌드(&)를 붙인다.

ㅇ 백그라운드로 실행하면 [백그라운드 카운트] 프로세스 번호가 출력된다.

 

ㅁ 백그라운드 작업 확인

jobs -l

ㅇ 현재 셸 세션에서 실행 중인 백그라운드 작업을 확인할 수 있다.

 

ㅁ 백그라운드 프로세스 관리

# 백그라운드 실행
$ sleep 200 &
[1] 10567

# 포그라운드 전환
$ fg %1
[1]  + 10567 running    sleep 200

# 종료:  Ctrl + c를 누른다.
^C

# 백그라운드 실행
$ sleep 200 &
[1] 10629

# 포그라운드 전환
$fg %1
[1]  + 10629 running    sleep 200
# Ctrl + Z를 누른다.
^Z
[1]  + 10629 suspended  sleep 200

# 다시 백그라운드 전환
$ bg
[1]  + 10629 continued  sleep 200

# 백그라운드 종료 시
[1]  + 10629 done       sleep 200

ㅇ 백그라운드 프로세스를 포그라운드로 가져오기: fg 또는 fg %작업번호

ㅇ 포그라운드에서 다시 백그라운드로 보내기: bg

 

ㅇ 백그라운드 명령을 실행하고 포그라운드로 다시 전환하였다가 종료 시켰다.

ㅇ 백그라운드 실행  -> 포그라운드 -> 백그라운드로 실행 후 종료되었다.

 

 

백그라운드로 실행한 프로세스는 기본적으로 터미널 세션이 종료되면 함께 종료됩니다.
세션 종료 후에도 프로세스를 유지하려면 nohup 명령어를 사용해야 한다. 

 

ㅁ nohup 사용하기

nohup command &

ㅇ nohup은 "No Hang Up"의 약자로, 터미널 세션이 종료되어도 프로세스가 계속 실행된다.

 

ㅁ nohup의 특징

ㅇ 기본적으로 출력은 nohup.out 파일에 저장된다.
ㅇ 터미널 세션과 독립적으로 실행된다.
ㅇ 프로세스의 표준 입력은 /dev/null로 리다이렉트된다.

 

ㅁ 로그 관리

ㅇ nohup으로 실행한 프로그램의 출력은 기본적으로 nohup.out 파일에 저장된다.

nohup command > filename.log &

ㅇ 특정 파일에 로그를 저장 방법

 

nohup command >> filename.log &

ㅇ 로그를 이어서 작성방법

 

command > /dev/null 2>&1 &

ㅇ 출력을 무시하는 방법

 

ㅁ 함께 보면 좋은 사이트

Linux : 백그라운드 실행 방법, 예제, 명령어

[Linux] 프로세스 백그라운드로 실행 시키기 - nohub, &

반응형
Comments