[리눅스] 시스템 명령어

Becoming a Data Engineer ·2023년 9월 12일
0

리눅스

목록 보기
6/9
post-thumbnail

uname : 사용 중인 시스템 정보


print system information
현재 사용중인 시스템을 출력

ubuntu@$your_host_name:~$ uname
Linux
  • -a
ubuntu@$your_host_name:~$ uname -a
Linux $your_host_name 5.15.0-1036-aws #40~20.04.1-Ubuntu SMP Mon Apr 24 00:21:13 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

ps : 실행 중인 프로세스 정보


report a snapshot of the current processes
현재 실행중인 프로세스를 확인하는 명령어 (프로그램이 '실행'이 되면 프로세스가 되는 것)
현재 프로세스에 문제가 있는지, 내가 실행한 어플리케이션 프로세스의 상태를 보는데 사용된다.

ubuntu@$your_host_name:~$ ps
    PID TTY          TIME CMD
   1311 pts/0    00:00:00 bash
   2653 pts/0    00:00:00 ps
  • -ef
    • -e : 시스템에서 실행 중인 모든 프로세스를 표시
    • -f : 프로세스에 대한 상세 정보를 표시
- UID: 프로세스의 사용자 식별자 (User ID)
- PID: 프로세스 ID (Process ID). 각 프로세스는 고유한 PID를 가집니다.
- PPID: 부모 프로세스 ID (Parent Process ID). 이 프로세스를 시작한 부모 프로세스의 PID를 나타냅니다.
- C: 프로세스의 CPU 사용량을 나타내는 값입니다.
- STIME: 프로세스가 시작된 시간을 나타냅니다.
- TTY: 터미널 유형을 나타냅니다. 대부분의 시스템에서는 ?로 표시됩니다.
- TIME: 프로세스가 CPU를 사용한 누적 시간을 나타냅니다.
- CMD: 프로세스를 시작한 명령어 또는 프로그램의 이름을 나타냅니다. 

ubuntu@$your_host_name:~$ ps -ef
UID          PID    PPID  C STIME TTY          TIME CMD
root           1       0  0 09:35 ?        00:00:06 /sbin/init
root           2       0  0 09:35 ?        00:00:00 [kthreadd]
root           3       2  0 09:35 ?        00:00:00 [rcu_gp]
root           4       2  0 09:35 ?        00:00:00 [rcu_par_gp]
root           5       2  0 09:35 ?        00:00:00 [slub_flushwq]
root           6       2  0 09:35 ?        00:00:00 [netns]
root           7       2  0 09:35 ?        00:00:01 [kworker/0:0-events]
root           8       2  0 09:35 ?        00:00:00 [kworker/0:0H-events_highpri]
root          10       2  0 09:35 ?        00:00:00 [mm_percpu_wq]
root          11       2  0 09:35 ?        00:00:00 [rcu_tasks_rude_]
root          12       2  0 09:35 ?        00:00:00 [rcu_tasks_trace]
root          13       2  0 09:35 ?        00:00:00 [ksoftirqd/0]
root          14       2  0 09:35 ?        00:00:00 [rcu_sched]
root          15       2  0 09:35 ?        00:00:00 [migration/0]
...
  • -aux
    • -a : 현재 로그인한 사용자와 관계없이 모든 사용자에 대한 프로세스를 표시
    • -u : 사용자 관련 정보를 표시
    • -x : 터미널에 연결되지 않은 프로세스도 표시 (데몬 프로세스 등)
- USER: 프로세스의 소유자 (사용자 이름).
- PID: 프로세스 ID (Process ID). 각 프로세스는 고유한 PID를 가집니다.
- %CPU: CPU 사용량의 백분율을 나타냅니다.
- %MEM: 메모리 사용량의 백분율을 나타냅니다.
- VSZ: 가상 메모리 크기 (Virtual Memory Size).
- RSS: 실제 메모리에서 사용 중인 크기 (Resident Set Size).
- TTY: 터미널 유형을 나타냅니다. 대부분의 시스템에서는 ?로 표시됩니다.
- STAT: 프로세스 상태 (Running, Sleeping, Zombie 등)를 나타냅니다.
- START: 프로세스가 시작된 시간을 나타냅니다.
- TIME: 프로세스가 CPU를 사용한 누적 시간을 나타냅니다.
- COMMAND: 프로세스를 시작한 명령어 또는 프로그램의 이름을 나타냅니다.

ubuntu@$your_host_name:~$ ps -aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  1.2 169328 12784 ?        Ss   09:35   0:06 /sbin/init
root           2  0.0  0.0      0     0 ?        S    09:35   0:00 [kthreadd]
root           3  0.0  0.0      0     0 ?        I<   09:35   0:00 [rcu_gp]
...
  • | (파이프), grep 명령어와 함께 사용하여 원하는 프로세스만 보기
ubuntu@$your_host_name:~$ ps -aux | grep python
root         490  0.0  1.8  29616 18164 ?        Ss   09:36   0:00 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers
root         667  0.0  2.0 108132 20548 ?        Ssl  09:36   0:00 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
ubuntu      2661  0.0  0.2   8168  2540 pts/0    S+   18:05   0:00 grep --color=auto python

kill : 프로세스 종료


실행중인 프로세스를 종료시키기 위한 명령어

kill 명령어는 정확하게 말하면 SIGNAL을 전달한다. 시그널은 프로세스에게 정보를 보내는 하나의 신호라고 생각하면 된다. 많이 사용되는 시그널은 다음과 같다.

  • -9 (SIGKILL) : 프로세스를 강제로 종료
  • -15 (SIGTERM) : 어플리케이션에서 종료 시그널을 받았을 때 현재 처리하고 있는 내용을 다 처리하고 종료하거나 특정 상황에서 강제 종료되는 상황 등을 막기 위해 사용

-9 시그널은 언제든지 강제 종료가 되기 때문에 어플리케이션이 작업 중이던 내용을 다 처리하지 못하고 종료되지만, -15 시그널은 개발자가 시그널을 처리하기 위한 로직(코드)을 구현할 수 있다.

(`&` 기호는 백그라운드에서 실행할 수 있게 해주는 특수기호)
ubuntu@$your_host_name:~$ sleep 1000 &
[1] 2673

ubuntu@$your_host_name:~$ ps -aux | grep sleep
ubuntu      2673  0.0  0.0   7236   580 pts/0    S    18:32   0:00 sleep 1000
ubuntu      2676  0.0  0.0   8168   656 pts/0    S+   18:33   0:00 grep --color=auto sleep

(종료하고자 하는 프로세스의 PID를 입력)
ubuntu@$your_host_name:~$ kill -9 2673
ubuntu@$your_host_name:~$ ps -aux | grep sleep
ubuntu      2679  0.0  0.0   8168   656 pts/0    S+   18:34   0:00 grep --color=auto sleep
[1]+  Killed                  sleep 1000
profile
I want to improve more 👩🏻‍💻

0개의 댓글