리눅스에서 서비스(백그라운드) 실행 및 관리방법
서비스 실행하기
${프로세스명}&
명령어 뒤에 &을 붙이면 백그라운드에서 작업을 실행함
사용자가 터미널 세션을 끊으면 백그라운드 중인 작업도 같이 종료됨
$nohup {프로세스명} &
nohup으로 실행하면 사용자가 터미널 세션을 끊어도 작업이 종료되지 않음
nohup으로 실행하면 실행한 위치에 nohup.out 파일이 생성되는데, 명령어 실행 시 발생하는 표준 출력을 nohup.out에 입력함
백그라운드 프로세스 확인
ps
현재 실행되고 있는 모든 백그라운드 프로세스 확인
ps -e
현재 실행되고있는 모든 백그라운드 프로세스 상세 확인
ps -ef
현재 실행되고있는 백그라운드 프로세스 중 {키워드}를 포함하고 있는 백그라운드 프로세스 확인
ps -ef|grep {키워드}
ps 명령어 옵션
옵션 | 의 미 |
a | 터미널과 연관된 프로세스 출력. 보통 x 옵션과 연계하여 모든 프로세스를 출력할때 사용 |
e | 프로세스에 관련된 환경 변수 정보 출력 |
f | 프로세스간 상속관계를 트리형식으로 출력 |
l | 프로세스의 정보를 길게 보여줌 |
u | 프로세스의 소유자를 기준으로 출력 |
x | 터미널에 종속되지 않는 프로세스 출력 |
p | 지정한 프로세스 출력 |
-a | 세션리더를 제외하고 터미널에 종속되지 않은 모든 프로세스 출력 |
-A | 모든 프로세스 출력 |
-C [process] | 뒤에 입력된 프로세스만 출력 |
-e | 모든 프로세스 출력 |
-f | 유닉스 스타일로 출력해줌 |
-o [value] | 출력 포맷을 지정함, 값에는 pid, tty, time 등을 지정한다. |
서비스 종료하기
시그널
시그널은 프로세스 사이의 통신 수단으로 프로세스에 메시지를 보내 프로세스를 제어함
명령어를 실행하여 프로세스를 시작하고 그 프로세스를 제어하기 위하여 사전에 정의된 시그널이 존재함
$ kill -l
주요 시그널
번호 | 시그널 | 의 미 |
1 | SIGHUP | 터미널에서 접속이 끊겼을때 보내지는 시그널, 변화된 내용을 적용하기 위해 재시작 할 때 사용된다. |
2 | SIGINT | 인터럽트 시그널로 실행을 중지시킴, Ctrl + c 입력시 보내지는 시그널 |
3 | SIGQUIT | 실행 중지 시그널로서 Ctrl + \ 입력시 보내지는 시그널 |
9 | SIGKILL | 프로세스를 강제로 종료 시키는 시그널 |
15 | SIGTERM | kill의 기본 시그널로 정상 종료 시키는 시그널 |
18 | SIGCONT | 시그널에 의해 정지된 프로세스를 다시 실행시키는 시그널 |
19 | SIGSTOP | 정지 시그널 |
20 | SIGTSTP | 일시정지 시키는 시그널로서 Ctrl + z 입력시 보내지는 시그널 |
ps 명령어로 종료시킬 프로세스의 pid를 확인해서 kill 명령어로 종료시킴
$ kill [options] [pid]
$ kill -9 {pid} # pid를 시그널 번호 9(KILL) 전송해서 죽임
kill 명령어 옵션
옵션 | 의미 |
-signal, -s signal | 지정한 시그널을 보냄 |
-l | 사용 가능한 시그널의 목록을 출력 |
프로세스 여러개 종료하기
$ killall [option] [signal] 프로세스
옵션 | 의 미 |
-l | 시그널의 종류 출력 |
-s | 시그널의 이름을 지정하는 옵션 |
-v | 시그널 전송 결과를 출력 |
-w | 시그널을 받은 프로세스들이 종료 될때까지 대기 |
'Linux' 카테고리의 다른 글
[GCP] 구글 클라우드 폴랫폼에 node.js 서버 올리기 (0) | 2023.11.02 |
---|---|
[Ubuntu] 우분투 마리아 디비(MariaDB) 설치 (0) | 2023.11.01 |
[Ubuntu] 기본 포트 번호 변경 (0) | 2023.11.01 |