>  기사  >  운영 및 유지보수  >  Linux에서의 프로세스 관리 - ps, pstree 및 기타 명령 소개

Linux에서의 프로세스 관리 - ps, pstree 및 기타 명령 소개

齐天大圣
齐天大圣원래의
2020-10-10 12:33:342674검색

프로세스는 이름에서 알 수 있듯이 실행 중인 프로그램입니다. 프로세스는 운영 체제의 기본 운영 단위입니다. 각 프로세스에는 고유한 프로세스 ID가 있으며 이 ID를 통해 프로세스를 관리합니다.

ps

각 프로그램의 실행 상태를 확인하는 방법은 ps 명령어를 사용하세요. 여기서는 부모 프로세스와 자식 프로세스의 개념에 대해 설명합니다. 부모 프로세스가 없는 프로세스를 자식 프로세스라고 합니다.

현재 bash 환경의 프로세스 상태 보기:

# ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0 43530 43528  0  80   0 - 28886 do_wai pts/0    00:00:00 bash
0 R     0 43552 43530  0  80   0 - 38336 -      pts/0    00:00:00 ps

여기서 UID는 사용자 ID를 나타내고, PID는 프로세스 ID를 나타내며, PPID는 상위 프로세스의 ID를 나타냅니다.

모든 프로세스 상태를 볼 수 있습니다. ps aux 를 통해 모든 프로세스 상태를 볼 수 있지만 상위 프로세스 ID는 나열되지 않습니다. ps -lA 또는 ps -ef를 사용하여 모든 프로세스를 보고 상위 프로세스 ID를 표시할 수 있습니다.

# ps aux 
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
……
root         2  0.0  0.0      0     0 ?        S    Sep29   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Sep29   0:02 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   Sep29   0:00 [kworker/0:0H]
……

pstree위의 모든 프로세스 보기에는 상위 프로세스 ID가 나열되어 있지만 상위 프로세스 ID와 상위 프로세스 ID 간의 관계는 다음과 같습니다. 하위 프로세스는 한 눈에 명확할 수 없습니다. pstree를 사용하여 모든 프로세스를 프로세스 트리로 나열할 수 있습니다.

[root@localhost ~]# ps -lA
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0     1     0  0  80   0 - 47844 ep_pol ?        00:00:04 systemd
1 S     0     2     0  0  80   0 -     0 kthrea ?        00:00:00 kthreadd
1 S     0     3     2  0  80   0 -     0 smpboo ?        00:00:02 ksoftirqd/0

특정 프로세스에 대한 프로세스 수를 볼 수도 있습니다.

# pstree -up
systemd(1)─┬─BT-Panel(5462)───{BT-Panel}(5469)
           ├─BT-Task(5361)─┬─{BT-Task}(5375)
           │               ├─{BT-Task}(5376)
           │               ├─{BT-Task}(5377)
           │               ├─{BT-Task}(5381)
           │               ├─{BT-Task}(5382)
           │               └─{BT-Task}(5390)
……

pidof프로세스 이름으로 프로세스 ID 번호를 확인하세요. 예를 들어 mysqld 프로세스 ID를 알고 싶다면 pidof 명령어를 통해 확인할 수 있다.

# pstree -p 5389 -up
mysqld(5389,mysql)─┬─{mysqld}(5414)
                   ├─{mysqld}(5415)
                   ├─{mysqld}(5416)
……

서버에 동일한 프로세스 이름이 여러 개 있을 수 있으므로 pidof를 통해 두 개 이상의 프로세스 ID가 검색됩니다.

# pidof mysqld
5389

kill, killall프로세스 관리를 위해 프로세스 ID PID를 사용합니다. 그리고 신호가 관리됩니다.

Codename12 19 kill과 killall의 차이점은 kill은 프로세스 ID를 통해 프로세스를 관리하는 반면, killall 프로세스를 관리하는 프로세스 이름입니다.
# pidof php-fpm
42609 41610 41588 ……
Name Content
SIGHUP 종료된 프로그램을 시작하면 PID가 자체 구성 파일을 다시 읽을 수 있습니다. 이는 다시 시작하는 것과 유사합니다.
SIGINT 은 프로그램을 중단하려면 키보드로 [Ctrl] -c를 입력하는 것과 같습니다. 정상적인 종료이므로 후속 조치로 완료됩니다. 이 신호는 기본값이기도 합니다. 신호가 추가되지 않은 경우에도 이 값이 사용됩니다.
SIGSTOP 은 키보드를 사용하여 [ctrl]-z를 입력하여 프로그램을 일시 중지하는 것과 같습니다

위 내용은 Linux에서의 프로세스 관리 - ps, pstree 및 기타 명령 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.