프로세스와 데몬은 엄밀히 말하면 다른 것이다. 프로세스와 데몬을 구별할 줄 알아야 한다.
프로세스와 데몬의 공통점은 어떤 일을 우리 대신 수행해주는 것이라고 보면 되는데, 차이점은 프로세스는 필요시 실행시키는 것이고 데몬은 자동 실행이라는 것이 다른 점이다.

● 데몬의 종류

  • standalone : 일명 정규직의 개념. 요청이 들어오면 관리데몬(수퍼데몬) 없이 자기가 알아서 요청을 받는 항시 구동.
  • xinetd : 일명 일용직의 개념. 필요할 때만 구동. xinetd는 수퍼데몬이라고 하는데, 요청이 들어오면 xinetd가 받아서 하위 데몬을에게 일을 시킨다. 일이 끝나면 하위 데몬을 종료시킴.


데몬은 데몬이름.conf 라는 설정파일 안에서 데몬의 형식을 상황에 맞게끔 수정해주면 된다.



포그라운드 프로세스는 해당 프로세스의 작업이 맨 상위로 처리되어 그 작업이 끝나기 전까지 다른 작업을 하지 못한다.
백그라운드 프로세스는 해당 프로세스의 작업이 우선적은 아니기에 그 작업이 끝나기 전에도 다른 작업을 수행 가능하다.

yes > /dev/null : 포그라운드 프로세스 실행방법의 일종으로 실행 중에는 다른 작업이 불가능.
yes > /dev/null & : 백그라운드 프로세스 실행방법은 뒤에 &을 추가해 주는 것임. 실행 동안 다른 작업 가능.

jobs
현재 수행중인 프로세스가 어떤 것인지 보여줌. (프로세스 번호도 같이 보여줌)

fg 1
현재 수행중인 1번 프로세스를 포그라운드로 변경. (ctrl+z 누르면 일시정지. 이때 백그라운드로 변경시키고 다른 작업 수행 후에 포그라운드로 다시 변경시켜주면 됨.) (ctrl+c 누르면 취소)

bg 1
현재 수행중인 1번 프로세스를 백그라운드로 변경.

ps
ps -ef | grep yes
현재 돌고있는 프로세스를 전부 보여줌.
프로세스 중 yes가 들어가있는 프로세스만 보여줌.

pstree
pstree | grep httpd
프로세스들을 트리 형태로 보여줌.
아파치와 관련된 프로세스 데몬만 트리로 보여줌.

top
top -c : top을 실행시켰을 때 명령어까지 보여준다.
윈도의 작업관리자와 같은 개념으로서, 5초마다 한번씩 갱신하며 cpu이용률이나 메모리이용률, 현재 돌고있는 프로세스명 등을 보여준다. (top을 종료하려면 ctrl+c)
shift+p : cpu 많이 쓰는 프로세스부터 정렬됨.
shift+m : 메모리 많이 쓰는 프로세스부터 정렬됨.
k : PID to kill이라는 프롬프트가 뜨며 거기에 죽일 프로세스PID번호를 입력하고, 시그널을 입력하면 죽는다.

kill (시그널번호) PID

시그널 종류
 -1  : 종료시킨 후에 다시 시작 (HUP)
 -9  : 강제로 즉시 종료 (Kill)
 -15 : 정상적으로 끝날 때까지 냅둠. 즉, 정상종료. (Term)
프로세스는 커널이 만들고 관리한다. top명령에서 부하가 많은 프로세스의 PID를 보고 커널에게 해당 프로세스를 죽이라고 신호를 주는데 이때 사용하는 명령어가 kill이다.
Posted by 겨울섬
,