뭉게뭉게 엔지니어
System Process 관리 본문
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 |