1. 프로세스란?
- 실행중인 프로그램을 프로세스라고 부름
- 하나의 프로그램에서 여러개의 프로세스 실행이 가능
- 리눅스 커널은 프로세스를 process id로 구분
2. 부모-자식 프로세스 관계
- 모든 프로세스는 부모 프로세스로부터 파생
init
또는systemd
가 대부분의 프로세스의 최상위 부모- 자식은 부모 종료 시 init이 대신 관리
- 부모 PID:
PPID
: parent pid
Bash
ps -eax -o pid,ppid,cmd
Bash
3. 프로세스 관련 명령
- ps : process status
Bash
ps
ps aux # 모든 사용자의 프로세스 보기
ps -ef # 전체 포맷 출력
BashBash
$ ps -eaf
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Apr28 ? 00:00:59 /sbin/init
root 2 0 0 Apr28 ? 00:00:00 [kthreadd]
root 3 2 0 Apr28 ? 00:00:00 [rcu_gp]
root 4 2 0 Apr28 ? 00:00:00 [rcu_par_gp]
root 5 2 0 Apr28 ? 00:00:00 [slub_flushwq]
root 928 1 0 Apr28 ? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd.conf
Bash- pstree
Bash
pstree
pstree -p
BashBash
$ pstree -p
systemd(1)─┬─ModemManager(973)─┬─{ModemManager}(1013)
│ └─{ModemManager}(1034)
├─agetty(974)
├─containerd-shim(2237)─┬─sh(2307)───npm run
......
├─systemd(286541)───(sd-pam)(286542)
├─systemd-journal(518)
├─systemd-logind(908)
├─systemd-network(864)
├─systemd-resolve(866)
├─systemd-timesyn(812)───{systemd-timesyn}(820)
├─systemd-udevd(564)
├─thermald(913)───{thermald}(983)
├─udisksd(914)─┬─{udisksd}(950)
│ ├─{udisksd}(954)
│ ├─{udisksd}(1029)
│ └─{udisksd}(1107)
├─unattended-upgr(1000)───{unattended-upgr}(1075)
├─upowerd(9078)─┬─{upowerd}(9080)
│ └─{upowerd}(9081)
└─vsftpd(928)
Bash- kill : 프로세스로 시그널 보내기
Bash
kill -9 pid
Bash- top : 프로세스 목록을 실시간 모니터링
Bash
top
Bash- pidof : 프로세스이름으로 PID찾기
Bash
pidof nginx # nginx 프로세스 PID 찾기
ps -eaf | grep nginx # nginx 프로세스를 문자열로 필터
Bash- 터미널에서 단축키 사용
- Ctrl + z,
- jobs
- bg : switch to background
- fg : switch to foreground
4. 프로세스 권한
- 리눅스에서 각 프로세스는 User와 Group속성을 가짐
- 이러한 정보는 커널이 다음을 판단하는 데 사용:
- 어떤 자원(파일, 디바이스, 포트 등)에 접근 가능한가
- 어떤 프로세스를 제어(kill, attach 등)할 수 있는가
- root 계정의 쉘 프롬프트는 #
- 일반 계정의 쉘 프롬프트는 $
5. 프로세스 권한 관련 명령
- ps로 권한정보 조회
Bash
ps -o pid,user,uid,euid,egid,cmd -p PID
Bash- id, whoami
Bash
id
whoami
Bash
6. su, sudo
- su : run a command with substitute user and group ID
Bash
su - danny
su -l
Bash- sudo : execute a command as another user
Bash
sudo vi /etc/shadow
sudo su -
Bash
답글 남기기