반응형

안녕하세요 가야태자 @talkit 입니다. 

뭘 좀 깔아 보려고 우분투를 VMWARE에 설치 했는데 지금 열심히 리눅스 강좌만 띠다 하고 있습니다. ^^

뭐 좋습니다. 

지난 번 글에서 프로세스를 프로세스 번호로 죽이는 법을 알려 드렸습니다. 

오늘은 프로세스명으로 모두 죽이는 방법을 알려 드리겠습니다. 

명령어는 killall 입니다. 

이번에도 만만한 top 명령어를 한 4번 실행 해두었습니다. 

그럼 저 프로그램들을 지우는 방법을 알아 보겠습니다. 

 ps -ef | grep top
talkit      2814    2263  0 06:58 pts/0    00:00:00 top
talkit      2830    2824  0 06:58 pts/2    00:00:00 top
talkit      2844    2838  0 06:58 pts/3    00:00:00 top
talkit      2861    2855  0 06:58 pts/4    00:00:00 top
talkit      2863    2388  0 06:59 pts/1    00:00:00 grep --color=auto top

우선 kill 명령어를 이용하는 방법입니다. 

kill -9 2814 2830 2844 2861 2863

위와 같이 프로세스를 나열하는 방법입니다. ^^

한번에 지우시려면 killall을 사용하시면 됩니다. 

killall [옵션들] 지우고싶은명령어
killall top

위와 같이 사용합니다. 실제로 해보겠습니다. 

한번의 명령어로 다 잘 죽였습니다. ^^

kill 과 killall 잘 활용하시면 됩니다. 

감사합니다. 

 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다. 

오늘의 리눅스에서 kill 명령어에 대해서 알아 보겠습니다. 

KILL(1)                                                                                                      User Commands                                                                                                      KILL(1)

NAME
       kill - send a signal to a process

SYNOPSIS
       kill [options] <pid> [...]

DESCRIPTION
       The  default signal for kill is TERM.  Use -l or -L to list available signals.  Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0.  Alternate signals may be specified in three ways: -9, -SIGKILL or -KILL.
       Negative PID values may be used to choose whole process groups; see the PGID column in ps command output.  A PID of -1 is special; it indicates all processes except the kill process itself and init.

OPTIONS
       <pid> [...]
              Send signal to every <pid> listed.

       -<signal>
       -s <signal>
       --signal <signal>
              Specify the signal to be sent.  The signal can be specified by using name or number.  The behavior of signals is explained in signal(7) manual page.

       -l, --list [signal]
              List signal names.  This option has optional argument, which will convert signal number to signal name, or other way round.

       -L, --table
              List signal names in a nice table.

       NOTES  Your shell (command line interpreter) may have a built-in kill command.  You may need to run the command described here as /bin/kill to solve the conflict.

사용법은 위에도 보이지만요.

kill [옵션들] 프로세스아이디 [프로세스아이디...]

위와 같이 사용합니다. 

제가 X windows에서 top 명령어를 하나 실행해 놓았습니다.  한번 죽여 보겠습니다. 

 ps -ef | grep top
talkit      2761    2263  0 06:46 pts/0    00:00:00 top
talkit      2768    2388  0 06:47 pts/1    00:00:00 grep --color=auto top

위와 같이 나오구요 저기서 프로세스 아이디는 2761 입니다. 

X에 켜져 있는 top 명령어가 죽었습니다. ^^

저렇게 해도 죽지 않는 경우가 있습니다. ^^

그럴때는 -9 옵션과 함께 주시면 대부분 죽습니다. 

kill -9 프로세스아이디들

오늘은 여기까지 하고 다음 강좌에서는 killall을 알아보겠습니다. 

감사합니다. 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다. 

지난 번에는 top, free에 관해서 이야기를 했습니다. 

리눅스/Linux top, free현재 CPU/Memory 상태를 알아보자. How to get Information for CPU and Memory status on Linux https://talkit.tistory.com/689

위 글을 참조 하시면 됩니다. 

오늘은 ps에 대해서 말씀 드리겠습니다. 리눅서에서 실행되는 프로세스, 프로그램에 대해서 보여 주는 프로그램입니다. 

사용법은 아래와 같습니다. 

ps [옵션들]

그냥 ps 명령어를 한번 내려 보겠습니다. 

 ps
    PID TTY          TIME CMD
   2388 pts/1    00:00:00 bash
   2649 pts/1    00:00:00 ps

위와 같이 나옵니다. 지금 현재 쉘 상에서 실행하는 프로세스만 나옵니다. 

옵션에 관해서 좀 알아 보겠습니다. 

-e 옵션은 리눅스의 모든 프로세스를 보여 준다고 되어 있습니다. 

ps -e
    PID TTY          TIME CMD
      1 ?        00:00:01 systemd
      2 ?        00:00:00 kthreadd
            ...
     52 ?        00:00:00 ksoftirqd/6
     54 ?        00:00:00 kworker/6:0H-events_highpri

아까 보다 훨 많은 프로세스가 보일 겁니다. 

-f 옵션은 명령어의 모든 경로를 보여 준답니다. 지난 번글의 top에서 <c> 키 토글과 비슷합니다. 

자 한번 해보겠습니다. 

ps -f
UID          PID    PPID  C STIME TTY          TIME CMD
talkit      2388    2387  0 06:09 pts/1    00:00:00 -bash
talkit      2691    2388  0 06:34 pts/1    00:00:00 ps -f

예쁘게 나오네요.

자 두가지를 조합해서 명령어를 내려 보겠습니다.  -ef 가 되겠습니다. ^^

UID          PID    PPID  C STIME TTY          TIME CMD
root           1       0  0 05:59 ?        00:00:01 /sbin/init auto noprompt
               ...
root         553       1  0 05:59 ?        00:00:00 /lib/systemd/systemd-udevd
root         560       1  0 05:59 ?        00:00:00 vmware-vmblock-fuse /run/vmblock-fuse -o rw,subtype=vmware-vmblock,default_permissions,allow_other,dev,suid
               ...
talkit      2103    1929  0 06:07 ?        00:00:00 /usr/libexec/gsd-disk-utility-notify
talkit      2107    1717  0 06:07 ?        00:00:00 /usr/libexec/gsd-xsettings
talkit      2137    1717  0 06:07 ?        00:00:00 /usr/libexec/gsd-printer
talkit      2143    1717  0 06:07 ?        00:00:01 /usr/bin/vmtoolsd -n vmusr --blockFd 3
talkit      2157    1733  0 06:07 ?        00:00:00 /usr/libexec/gvfsd-trash --spawner :1.3 /org/gtk/gvfs/exec_spaw/0
talkit      2206    1717  0 06:07 ?        00:00:00 /usr/libexec/dconf-service
talkit      2211    1717  0 06:07 ?        00:00:00 /usr/libexec/evolution-addressbook-factory

위에 보시면 실제로 /usr/bin 등의 풀경로와 옆에 옵션 정보까지 다 보여 주고 있습니다. 

그리고, -e 옵션을 넣었기 때문에 모든 프로세스가 나왔습니다. 

ps 에 대한 설명은 여기까지 말씀 드리구요.

grep과 조합 하는 법을 알려 드리겠습니다. 

제가 쓰는 방법 외에도 많겠지만 저는 그냥 제가 사용하는 방법을 알려 드리겠습니다. ^^

ps [옵션들] | grep "검색어"

위와 같이 사용합니다. 옵션들은 저는 거의 -ef 로 고정 되어 있습니다. ^^

그래서 제가 실행한 프로세스만 찾아 보겠습니다. 

ps -ef | grep "talkit"
0 06:07 ?        00:00:00 /lib/systemd/systemd --user
talkit      1718    1717  0 06:07 ?        00:00:00 (sd-pam)
talkit      1724    1717  0 06:07 ?        00:00:00 /usr/bin/pulseaudio --daemonize=no --log-target=journal
talkit      1726    1717  0 06:07 ?        00:00:00 /usr/libexec/tracker-miner-fs
talkit      1729    1717  0 06:07 ?        00:00:00 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
talkit      1733    1717  0 06:07 ?        00:00:00 /usr/libexec/gvfsd
talkit      1738    1717  0 06:07 ?        00:00:00 /usr/libexec/gvfsd-fuse /run/user/1000/gvfs -f -o big_writes
talkit      1758    1717  0 06:07 ?        00:00:00 /usr/libexec/gvfs-udisks2-volume-monitor
talkit      1763    1717  0 06:07 ?        00:00:00 /usr/libexec/gvfs-mtp-volume-monitor
talkit      1767    1717  0 06:07 ?        00:00:00 /usr/libexec/gvfs-gphoto2-volume-monitor
talkit      1771    1717  0 06:07 ?        00:00:00 /usr/libexec/gvfs-goa-volume-monitor
talkit      1777    1717  0 06:07 ?        00:00:00 /usr/libexec/goa-daemon
talkit      1780       1  0 06:07 ?        00:00:00 /usr/bin/gnome-keyring-daemon --daemonize --login
talkit      1791    1717  0 06:07 ?        00:00:00 /usr/libexec/goa-identity-service
talkit      1797    1717  0 06:07 ?        00:00:00 /usr/libexec/gvfs-afc-volume-monitor
talkit      1815    1704  0 06:07 tty2     00:00:00 /usr/lib/gdm3/gdm-x-session --run-script env GNOME_SHELL_SESSION_MODE=ubuntu /usr/bin/gnome-session --systemd --session=ubuntu
talkit      1817    1815  0 06:07 tty2     00:00:01 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3
talkit      1827    1815  0 06:07 tty2     00:00:00 /usr/libexec/gnome-session-binary --systemd --systemd --session=ubuntu
talkit      1894    1827  0 06:07 ?        00:00:00 /usr/bin/ssh-agent /usr/bin/im-launch env GNOME_SHELL_SESSION_MODE=ubuntu /usr/bin/gnome-session --systemd --session=ubuntu
talkit      1913    1717  0 06:07 ?        00:00:00 /usr/libexec/at-spi-bus-launcher
talkit      1918    1913  0 06:07 ?        00:00:00 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3
talkit      1922    1717  0 06:07 ?        00:00:00 /usr/libexec/gnome-session-ctl --monitor
talkit      1929    1717  0 06:07 ?        00:00:00 /usr/libexec/gnome-session-binary --systemd-service --session=ubuntu
talkit      1942    1717  0 06:07 ?        00:00:05 /usr/bin/gnome-shell

이런식으로 제 계정으로 실행된 내용들이 나옵니다. ^^

그리고 monitor 가 포함되어 있는 프로세스만 찾을 수도 있습니다. 

 ps -ef | grep  "monitor"
talkit      1758    1717  0 06:07 ?        00:00:00 /usr/libexec/gvfs-udisks2-volume-monitor
talkit      1763    1717  0 06:07 ?        00:00:00 /usr/libexec/gvfs-mtp-volume-monitor
talkit      1767    1717  0 06:07 ?        00:00:00 /usr/libexec/gvfs-gphoto2-volume-monitor
talkit      1771    1717  0 06:07 ?        00:00:00 /usr/libexec/gvfs-goa-volume-monitor
talkit      1797    1717  0 06:07 ?        00:00:00 /usr/libexec/gvfs-afc-volume-monitor
talkit      1922    1717  0 06:07 ?        00:00:00 /usr/libexec/gnome-session-ctl --monitor
talkit      2698    2388  0 06:40 pts/1    00:00:00 grep --color=auto monitor

참고로 한단어 일경우 "" 로 안묶어 주셔도 됩니다. ^^

grep을 이용해서 해킹이 들어 왔는지 내가 아닌 다른계정이 있는지도 찾을 수 있구요.

내 프로그램이 살아 있는지도 알수 있습니다. 

그리고, 찾은 프로그램의 프로세스 번호도 알 수 있습니다. ^^ 

두번째 칸의 숫자가 프로세스 번호 입니다. 

그 프로세스를 죽이려고 할때 프로세스 번호가 필요 합니다. 

해당 내용은 kill 명령어를 설명하면서 다시 알려드리겠습니다. 

감사합니다. 

반응형

+ Recent posts