Computer >> 컴퓨터 >  >> 체계 >> Linux

Linux에서 ps 명령을 사용하여 프로세스를 종료하는 방법

Linux에서 ps 명령을 사용하여 프로세스를 종료하는 방법

작업을 하다보면 프로그램이 갑자기 멈추는 경우가 있습니다. 다른 경우에는 프로그램이 여전히 실행 중이지만 프로세서나 메모리를 많이 사용합니다. ps를 사용하여 Linux에서 이 문제를 해결할 수 있는 방법이 있습니다. (P 프로세스 S tatus) 명령. 여기에서는 ps를 사용하는 방법을 보여줍니다. Linux에서 명령을 사용하여 현재 실행 중인 프로세스와 해당 PID를 나열합니다. 그런 다음 리소스를 소모하는 프로세스를 찾아 종료할 수 있습니다.

"ps" 명령 사용

ps 명령을 단독으로 사용할 수 있습니다. 4개의 정보 열이 출력됩니다.

  • PID :시스템에서 정의한 프로세스의 고유 식별자입니다. 프로세스를 중지하는 데 사용하는 값입니다.
  • TTY :프로세스가 시작된 터미널입니다.
  • 시간 :프로세스에서 사용한 총 CPU 시간입니다.
  • CMD :프로세스를 생성하는 명령
Linux에서 ps 명령을 사용하여 프로세스를 종료하는 방법

옵션 없이 명령을 사용하면 많은 정보가 표시되지 않습니다. 다음은 더 유용하게 사용할 수 있는 몇 가지 방법입니다.

1. 모든 사용자의 프로세스 나열

일부 프로그램이 설치되면 프로세스를 실행하기 위해 추가 사용자를 생성하기도 합니다. 사용자의 프로세스를 나열하려면 -e를 사용하십시오. 옵션:

ps -e

및 출력:

PID TTY          TIME CMD
1 ?        00:00:02 systemd
2 ?        00:00:00 kthreadd
3 ?        00:00:00 kworker/0:0
4 ?        00:00:00 kworker/0:0H
5 ?        00:00:00 kworker/u256:0
6 ?        00:00:00 mm_percpu_wq

2. 추가 정보가 포함된 프로세스 나열

실행 중인 프로세스를 나열할 때 더 많은 정보를 가질 수 있습니다. 이렇게 하려면 ef를 사용할 수 있습니다. 옵션.

ps -ef

및 출력:

UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 21:34 ?        00:00:03 /sbin/init maybe-ubiquity
root          2      0  0 21:34 ?        00:00:00 [kthreadd]
root          3      2  0 21:34 ?        00:00:00 [kworker/0:0]
root          4      2  0 21:34 ?        00:00:00 [kworker/0:0H]
root          6      2  0 21:34 ?        00:00:00 [mm_percpu_wq]
root          7      2  0 21:34 ?        00:00:00 [ksoftirqd/0]

3. 프로세스 ID로 프로세스 필터링

표시하려는 실행 중인 프로세스의 프로세스 ID를 알고 있는 경우 -p를 사용하여 구체적으로 필터링할 수 있습니다. 깃발. 공백 없이 하나의 쉼표로 구분된 여러 PID를 인수로 사용할 수 있습니다.

ps -ef -p 1234,5678,9012

4. 사용자가 소유한 프로세스 나열

u를 사용하여 사용자가 소유한 프로세스를 나열할 수도 있습니다. 옵션 다음에 사용자 이름:

ps -u userName

및 출력:

PID TTY          TIME CMD
2832 ?        00:00:00 systemd
2842 ?        00:00:00 (sd-pam)
3043 ?        00:00:00 sshd
3044 pts/1    00:00:00 bash
18396 pts/1    00:00:00 ps

5. 활성 프로세스 나열

ax를 사용하여 활성화된 모든 프로세스를 나열할 수 있습니다. 옵션:

ps -ax

및 출력:

PID TTY      STAT   TIME COMMAND
1 ?        Ss     0:02 /sbin/init maybe-ubiquity
2 ?        S      0:00 [kthreadd]
3 ?        I      0:00 [kworker/0:0]
4 ?        I<     0:00 [kworker/0:0H]
6 ?        I<     0:00 [mm_percpu_wq]
7 ?        S      0:00 [ksoftirqd/0]

6. 사용자와 함께 활성 프로세스 나열

-aux를 추가하면 사용자와 함께 모든 활성 프로세스를 나열할 수 있습니다. 플래그:

ps -aux

및 출력:

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.2  78132  9188 ?        Ss   21:34   0:02 /sbin/init maybe-ubiquity
root          2  0.0  0.0      0     0 ?        S    21:34   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        I    21:34   0:00 [kworker/0:0]
root          4  0.0  0.0      0     0 ?        I<   21:34   0:00 [kworker/0:0H]
root          6  0.0  0.0      0     0 ?        I<   21:34   0:00 [mm_percpu_wq]
root          7  0.0  0.0      0     0 ?        S    21:34   0:00 [ksoftirqd/0]
root          8  0.0  0.0      0     0 ?        I    21:34   0:00 [rcu_sched]
root          9  0.0  0.0      0     0 ?        I    21:34   0:00 [rcu_bh]
root         10  0.0  0.0      0     0 ?        S    21:34   0:00 [migration/0]

7. 프로그램 이름으로 프로세스 필터링

ps에 필터를 적용하여 실행 중인 특정 프로그램에 대한 정보를 검색할 수 있습니다. 결과:

ps -aux | grep docker

및 출력:

root       1508  0.0  2.2 1518156 90868 ?       Ssl  21:34   0:03 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
userkub+  18429  0.0  0.0  13144  1108 pts/1    S+   23:57   0:00 grep --color=auto docker

또는 C를 사용할 수도 있습니다. 이름으로 프로세스를 필터링하는 옵션:

ps -C name
Linux에서 ps 명령을 사용하여 프로세스를 종료하는 방법

8. 특정 열 표시

4개의 기본 열 외에도 ps를 얻을 수 있습니다. 추가 정보 열을 표시합니다. 예:

ps -e -o pid,uname,pcpu,pmem,comm
Linux에서 ps 명령을 사용하여 프로세스를 종료하는 방법

-o 플래그는 ps에 대한 특정 출력 표시 옵션을 설정합니다. 명령의 결과. ps에 대한 표준 디스플레이 옵션의 전체 목록을 참조하십시오.

9. 계층적 트리 스타일로 결과 표시

ps -e --forest

이것은 ASCII 아트를 사용하여 프로세스를 표시하기 위한 트리 스타일 구조를 만듭니다. 분기된 프로세스와 하위 프로세스를 적절한 상위 프로세스의 자손으로 표시하여 일치하도록 정렬합니다. 트리의 "가지"를 숨기려면 -H를 사용하십시오. --forest 대신 .

10. 프로세스 스레드 표시

ps -p 4041 -L
Linux에서 ps 명령을 사용하여 프로세스를 종료하는 방법

-L 플래그는 ps의 모든 기능에 대해 스레드 디스플레이를 토글합니다. 특정 프로세스의 스레드를 추적할 때 가장 유용합니다.

11. 모든 루트 프로세스 표시

ps -f -U root -u root
Linux에서 ps 명령을 사용하여 프로세스를 종료하는 방법

실제적이고 효과적인 루트 ID로 실행 중인 모든 프로세스에 대한 검색을 실행합니다. -f 덕분에 전체 길이 형식으로 표시됩니다. 깃발. -o와 결합할 수 있습니다. 출력을 사용자 정의하는 플래그입니다.

kill 명령을 사용하여 프로세스 중지

오작동하는 프로세스를 찾으면 kill 명령을 사용하여 실행 중인 프로세스를 종료할 수 있습니다. 이 명령은 프로세스를 종료하는 신호를 보냅니다. 프로그램이 정지되면 대부분의 경우 -9를 사용하여 강제 종료해야 합니다. 옵션.

Linux에서 ps 명령을 사용하여 프로세스를 종료하는 방법

ps의 출력은 인스턴트 뷰입니다. htop과 달리 , 자신을 동적으로 업데이트하지 않습니다. 이것은 어떤 프로세스가 오작동하는지에 대한 명확한 그림을 얻기 위해 여러 번 실행해야 할 수도 있음을 의미합니다. 프로세스의 최신 보기를 얻으려면 Linux 시스템에 대한 몇 가지 다른 명령을 시도할 수 있습니다.