뭉게뭉게 엔지니어

System Process 관리 본문

☁ Server/기초 따라가기

System Process 관리

어푸어푸🌊 2022. 7. 17. 17:31

Process 란?

- 프로그램이나 명령어를 실행했을 때 메모리에 loading 되어 실제로 동작하는 상태를 말한다.

- 프로세스가 실행되면 프로세스 식별번호(PID, Process ID)를 할당받는다.

- 최상위프로세스는 systemd(centOS7)이고, 그 외 프로세스는 항상 부모프로세스(PPID, Parents Process ID)를 가진다.

- 해당 프로세스를 동작시킨 파일의 uid와 gid를 획득하여 소유자 등의 프로세스 실행에 필요한 inode 정보 및 실행된 터미널, 입력된 명령어, 시작 시간 등의 많은 정보를 보유한다. 

- 이러한 프로세스 정보는 ps 명령어 또는 pstree 명령어를 활용하여 확인할 수 있다.

명령어 옵션
ps
pstree

 

 

process 구분은 터미널 구분을 통해 쉽게 할 수 있고, tty 명령어를 입력하여 확인한다.

 

Foreground 와 Background

- Foreground : 일반적으로 프로그램이 실행되는 방식으로, 명령이 실행시킨 프로그램 앞에서 실행되는 방식을 말한다.

                       프로그램의 앞에서 실행되기 때문에 해당 터미널을 사용할 수 없는 상태가 된다. 

                       ctrl + z 로 프로세스를 종료시킨다. 

# firefox
해당 터미널에서 명령어 실행 불가

^Z (ctrl + z) - 일시정지
[1]+  Stopped                 firefox

[root@localhost ~]# firefox
^C (ctrl + c) - 강제종료
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.

[1]+  죽었음               firefox

터미널 사용 가능 
[root@localhost ~]# ls
anaconda-ks.cfg       공개      문서      비디오  서식
initial-setup-ks.cfg  다운로드  바탕화면  사진    음악

 

- Background : 명령이 실행시킨 프로그램의 뒤에서 실행되는 방식이다.

                         장시간 동작해야하는 프로그램은 대부분 백그라운드 방식이며, 앰퍼샌드(&)를 붙여 동작한다.

                         프로그램의 뒤에서 실행되기 때문에 해당 터미널을 사용할 수 있다.

                         kill 명령어로 프로세스를 종료시킨다. (-9 옵션과 함께 쓰임 # kill -9 [PID])

                          pkill : 관련 프로세스 모두 종료

kill >>
# firefox &
[1] 5588 - PID 를 남김 

백그라운드 프로세스 확인 
# jobs
[1]+  Running                 firefox &

[root@localhost ~]# kill -9 5588
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
[1]+  죽었음               firefox


pkill>>
패키지 설치
# yum -y install httpd

패키지 실행 -> 프로세스]
# systemctl restart httpd

프로세스 목록 확인] 
# ps -ef | grep httpd
UID         PID   PPID  C STIME TTY          TIME CMD
root      61231      1  1 10:51 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    61232  61231  0 10:51 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    61233  61231  0 10:51 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    61234  61231  0 10:51 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    61236  61231  0 10:51 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    61239  61231  0 10:51 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
root      61244  10405  0 10:51 pts/1    00:00:00 grep --color=auto httpd

관련 프로세스 종료]
[root@localhost ~]# pkill httpd

확인] 
[root@localhost ~]# ps -ef | grep httpd
root      61399  10405  0 11:02 pts/1    00:00:00 grep --color=auto httpd

 

 

▶ 프로세스 전환 (터미널 창이 1개만 주어지는 경우 프로세스를 중지하지 않고 터미널을 사용하고 싶을 때)

포그라운드로 실행]
# firefox

ctrl + c (그냥 종료) , ctrl + z (일시 정지)

백그라운드로 전환 : 일시 정지 된 상태에서 전환]
일시정지 
###!!! [Child][RunMessage] Error: Channel closing: too late to send/recv, messages will be lost
^Z
[1]+  Stopped                 firefox

백그라운드 전환 확인]
[root@localhost ~]# bg %1
[1]+ firefox & 

[root@localhost ~]# jobs
[1]+  Running                 firefox &

터미널 사용 가능]
[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  공개  다운로드  문서  바탕화면  비디오  사진  서식  음악

다시 포그라운드로 전환]
[root@localhost ~]# fg %1
firefox

'☁ Server > 기초 따라가기' 카테고리의 다른 글

crond  (0) 2022.07.18
Disk 관리  (0) 2022.07.18
Package 관리  (0) 2022.07.17
Compress(tar,gzip,bzip2)  (0) 2022.07.17
Special permission & ACL(확장퍼미션)  (0) 2022.07.08
Comments