TIL 4일째 > 프로세스, 서비스, 자동화

  • by

1. 프로세스 관리


프로그램이란?

= 컴퓨터에서 모든 작업을 수행하는 코드로 정적 상태 파일

프로세스?

= 컴퓨터에서 실행되는 프로그램.

따라서 하나의 프로그램을 여러 번 구동하면 여러 프로세스가 메모리에서 실행됩니다.

스레드?

= 스레드는 코드가 실행되는 플로우 중 하나이므로 한 프로세스에 스레드가 2개 있는 경우 코드가 실행되는 플로우가 2개 발생합니다.

멀티태스킹?

= 여러 작업을 동시에 처리

멀티 스레드?

= 멀티스레드는 애플리케이션 내에서 멀티태스킹입니다.


프로세스를 실행하는 방법?

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:

  1. SIGHUP : 재부팅시 사용
  2. SIGINT: UNDO 신호, Ctrl+c
  3. SIGKILL : 프로세스 강제 종료
  4. SIGTERM: 프로세스 정상 종료(기본 명령)
  5. SIGCONT: 중지된 프로세스 실행
  6. SIGSTOP : 단말기에서 입력되는 정지 신호
  7. SIGTSTP : 실행 중지 후 재실행 대기, Ctrl + z
# kill -시그널번호(시그널명) %작업번호
$ kill -시그널번호(시그널명) PID

직업 명령?

= 현재 터미널에서 실행 중인 백그라운드 프로세스의 상태를 확인하는 데 사용됩니다.

# 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 시동 시 유닛을 활성화합니다.

systemctl disable 장치가 시작되면 비활성화됩니다.

systemctl start 장치를 즉시 시작합니다.

systemctl stop 장치를 즉시 비활성화합니다.

systemctl restart 장치를 즉시 재부팅하십시오.
systemctl status 단위 상태와 최근 로그를 조회합니다.