6. 프로세스
6.1 프로세스 : 실행 중인 프로그램
ps(Process Status) : 실행중인 프로세스를 확인하는 명령어
6.1.1 ps : 현재 쉘에서 실행시킨 프로세스 목록
ps
PID TTY TIME CMD
4584 pts/0 00:00:00 bash
4636 pts/0 00:00:00 dbus-launch
4856 pts/0 00:00:00 su
PID : 프로세스 아이디
TTY : 터미널 번호(?인 것은 백그라운드로 실행 중인 프로세스)
TIME : 프로세스를 실행한 시간
CMD : 명령어
6.1.2 컴퓨터에서 실행 중인 모든 프로세스 표시
-e(every) : 현재 실행 중인 모든 프로세스 정보를 출력하는 옵션
ps -e
6.1.3 현재 실행중인 프로세스의 상세 정보(시작시간, 부모ID 등)
-f(Full listing)
ps -f
PPID : Parent Process ID 부모 프로세스 아이디
STIME : 프로세스가 시작된 시각
6.1.4 모든 프로세스의 상세 정보
ps -ef
6.1.5 프로세스 중지
kill 프로세스ID
특정 프로세스를 종료시킴
kill 프로세스ID
프로세스를 강제로 중지시키는 옵션
프로세스 중지(-9 무조건 종료시킴)
kill -9 프로세스ID
프로세스가 중지되었는지 확인
ps
ex) gedit 툴을 실행한 후 프로세스 아이디를 확인하고 kill 명령어로 강제 종료
gedit
6.2 Foreground Process와 Background Process
y를 화면에 계속 출력
yes
별도의 터미널을 띄우고 실행
ps -e | grep yes
yes 프로세스가 실행된 창에서 Ctrl+C 강제 종료
화면에 출력되지 않음(포그라운드)
device null 장치로 보냄
yes > /dev/null
Ctrl+C를 눌러서 프로세스 강제 종료
백그라운드 프로세스
yes > /dev/null &
끝난 것처럼 보이지만 프로세스를 확인해보면 백그라운드에서 실행 중인 것으로 확인됨
프로세스 목록 확인
ps -ef | grep yes
포그라운드 프로세스
gedit
gedit를 백그라운드 프로세스로 실행
gedit &
ps -ef | grep gedit