코딩과로그
TIL > 프로세스, 서비스, 자동화 본문
1. 프로세스 관리
프로그램이란?
= 컴퓨터에서 어떤 작업을 실행하기 위한 코드로, 정적인 상태의 파일
프로세스?
= 컴퓨터에서 실행되고 있는 프로그램.
따라서 하나의 프로그램을 여러 번 구동하면 여러 개의 프로세스가 메모리 상에서 실행됨.
스레드?
= 스레드는 코드가 실행되는 하나의 흐름이기 때문에, 한 프로세스 내에 스레드가 두 개라면 코드가 실행되는 흐름이 두 개 생김.
멀티 태스킹?
= 두 가지 이상의 작업을 동시에 처리하는 것
멀티 스레드?
= 멀티 스레드는 애플리케이션 내부에서의 멀티 태스킹.
프로세스 실행 방식 ?
1. 포그라운드(foreground)
= 사용자가 입력한 명령이 실행되어 결과가 출력될 때까지 기다려야 하는 방식
이러한 방식으로 처리되는 프로세스는 포그라운드 프로세스라고 부름.
2. 백그라운드(background)
= 프로세스가 실행되는 동안 뒤에서 다른 프로세스가 실행가능함.
이러한 방식으로 처리되는 프로세스는 백그라운드 프로세스라고 부름.
!중요
nohup 명령어를 이용하여 백그라운드로 실행하면 사용자의 터미널 세션이 종료되어도 작업이 종료될 때까지 프로세스를 실행함.
# 백그라운드 방식은 뒤에 &추가
$ command &
$ vim abc.sh &
# nohup 커맨드(no hang up)
$ nohup command &
$ nohup vim abc.sh &
프로세스 목록 확인 ?
ps 명령어를 통해 아래 정보를 확인할 수 있다.
- PID : 프로세스 번호
- TTY : 프로세스가 실행된 터미널의 종류와 번호
- TIME : 프로세스 실행 시간
- CMD : 실행되고 있는 프로그램의 이름(명령)
내가 보기위한 관련 링크:
https://urclass.codestates.com/content/f3ef9e15-b5ea-402e-b183-5a967c20a64d?playlist=2735
프로세스 관리 - kill ?
kill 명령어를 통해 프로세스에 시그널을 전달할 수 있다.
# kill -l 명령어를 통해 시그널 종류를 확인할 수 있다.
$ kill -l
HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS
kill signal number:
- SIGHUP : 재시작할 때 사용
- SIGINT : 실행 중지 시그널, Ctrl + c
- SIGKILL : 프로세스 강제 종료
- SIGTERM : 프로세스 정상종료 (기본 명령)
- SIGCONT : 정지된 프로세스 실행
- SIGSTOP : 터미널에서 입력되는 정지 시그널
- SIGTSTP : 실행 정지 후 재실행 대기, Ctrl+ z
# kill -시그널번호(시그널명) %작업번호
$ kill -시그널번호(시그널명) PID
job 명령어 ?
= 현재 터미널에서 실행되고 있는 백그라운드 프로세스의 상태를 확인할 때 사용함.
# vim 백그라운드에서 실행
$ vim abc&
[1] 3275415
[1] + 3275415 suspended (tty output) vim abc
# vim 백그라운드에서 실행
$ vim papago&
[2] 3275437
[2] + 3275437 suspended (tty output) vim papago
# 백그라운드 실행 리스트 확인 (+기호는 현재 처리되고 있는 작업을 의미함)
$ jobs
[1] - suspended (tty output) vim abc
[2] + suspended (tty output) vim papago
2. 서비스 관리
데몬 ?
= 일반적으로 “백그라운드에서 작동하는 프로세스”
# 프로그램명 끝에 d가 붙는 경우 보통 백그라운드 서비스용임.
ex) syslogd, httpd
- 대표적 데몬 cron이 있다.
# crontab 명령어를 통해 특정 시각에 주기적으로 프로그램을 실행하도록 하게 할 수 있다.
$ crontab
관련 링크:
https://urclass.codestates.com/content/a2d10f64-a1a4-4517-9464-e8cc02b90388?playlist=2735
데몬 확인하기
= 모든 데몬의 목록은 systemctl 명령으로 확인할 수 있다.
명령기능
명령 | 기능 |
systemctl list-unit-files | 설치된 유닛(데몬)을 보여준다. |
systemctl --type=service | 서비스 목록만 보기. |
systemctl enable <unit> | 부팅 시 유닛을 활성화한다. |
systemctl disable <unit> | 유닛이 부팅 시 비활성화된다. |
systemctl start <unit> | 유닛을 즉시 활성화시킨다. |
systemctl stop <unit> | 유닛을 즉시 비활성화한다. |
systemctl restart <unit> | 유닛을 즉시 재시작한다. |
systemctl status <unit> | 유닛의 상태와 최근 로그들을 조회한다. |
'Devops > TIL' 카테고리의 다른 글
TIL > URL과 URI (0) | 2023.03.15 |
---|---|
TIL > 시스템 모니터링 (0) | 2023.03.15 |
TIL > 리눅스 관련 (입출력, 관리자 권한 등) (0) | 2023.03.10 |
TIL> 리눅스 디렉토리 구조 (0) | 2023.03.09 |
TIL > 개발 프로세스와 DevOps 업무 개요 (0) | 2023.03.08 |