ひとり勉強ログ

ITエンジニアの勉強したことメモ

【Linux】プロセス

プロセスとは

Linuxでコマンドを実行すると、Linuxカーネルはディスクから実行ファイルを読み出し、メモリに格納する。 そしてそのメモリの内容にしたがってCPUがプログラムを実行する。 メモリ上で実行状態にあるプログラムを「プロセス」という。

プロセスの表示

現在動作しているプロセスを表示する。 [bash] [mako@localhost /]$ ps PID TTY TIME CMD 2595 pts/0 00:00:00 bash 3995 pts/0 00:00:00 man 4009 pts/0 00:00:00 less 4260 pts/0 00:00:00 ps [/bash]

PID:プロセスID

PID プロセスID
TTY ターミナル
CMD 実行されているコマンド

現在のユーザが実行しているすべてのプロセスを表示

「x」オプションを使用すると下記のようなプロセスも含めて表示できる。

  • 別のターミナルで使用しているコマンド
  • 「デーモン」というターミナルに接続していないプロセス

[bash] [mako@localhost /]$ ps xf PID TTY STAT TIME COMMAND 2594 ? S 0:00 sshd: mako@pts/0 2595 pts/0 Ss 0:00 _ -bash 3995 pts/0 T 0:00 _ man ls 4009 pts/0 T 0:00 | _ less -s 4326 pts/0 R+ 0:00 _ ps xf [/bash]

2595のsshdプロセスから「bash」が起動 →「man ls」が実行→「man」コマンドは内部で「less」コマンドを起動→「less」の子プロセスを連れている いうことが分かる。

すべてのプロセスを表示

現在ログイン中のユーザが実行しているプロセス以外にもLinuxのシステムを管理するために動いているプロセスがある。 自分のプロセスだけではなく、動いているすべてのプロセスを表示させる。 [bash] [mako@localhost /]$ ps ax PID TTY STAT TIME COMMAND 1 ? Ss 0:01 /usr/lib/systemd/systemd --switched-root --system --d 2 ? S 0:00 [kthreadd] 3 ? S 0:00 [ksoftirqd/0] 6 ? S 0:00 [kworker/u2:0] 7 ? S 0:00 [migration/0] 8 ? S 0:00 [rcu_bh] 9 ? R 0:00 [rcu_sched] 10 ? S 0:00 [watchdog/0] 12 ? S< 0:00 [khelper] 13 ? S 0:00 [kdevtmpfs] 14 ? S< 0:00 [netns] 15 ? S 0:00 [khungtaskd] 16 ? S< 0:00 [writeback] 17 ? S< 0:00 [kintegrityd] 18 ? S< 0:00 [bioset] 19 ? S< 0:00 [kblockd] 20 ? S< 0:00 [md] 26 ? S 0:00 [kswapd0] 27 ? SN 0:00 [ksmd] 28 ? SN 0:00 [khugepaged] 29 ? S 0:00 [fsnotify_mark] 30 ? S< 0:00 [crypto] 38 ? S< 0:00 [kthrotld] 40 ? S< 0:00 [kmpath_rdacd] 41 ? S< 0:00 [kpsmoused] 42 ? S< 0:00 [ipv6_addrconf] 62 ? S< 0:00 [deferwq] 94 ? S 0:00 [kauditd] 268 ? S< 0:00 [ata_sff] 283 ? S 0:00 [scsi_eh_0] 285 ? S< 0:00 [scsi_tmf_0] 286 ? S 0:00 [scsi_eh_1] 287 ? S< 0:00 [scsi_tmf_1] 288 ? S 0:00 [kworker/u2:2] 289 ? S 0:00 [scsi_eh_2] 290 ? S< 0:00 [scsi_tmf_2] 360 ? S< 0:00 [kdmflush] 361 ? S< 0:00 [bioset] 370 ? S< 0:00 [kdmflush] 371 ? S< 0:00 [bioset] 386 ? S< 0:00 [xfsalloc] 387 ? S< 0:00 [xfs_mru_cache] 388 ? S< 0:00 [xfs-buf/dm-0] 389 ? S< 0:00 [xfs-data/dm-0] 390 ? S< 0:00 [xfs-conv/dm-0] 391 ? S< 0:00 [xfs-cil/dm-0] 392 ? S< 0:00 [xfs-reclaim/dm-] 393 ? S< 0:00 [xfs-log/dm-0] 394 ? S< 0:00 [xfs-eofblocks/d] 395 ? S 0:01 [xfsaild/dm-0] 468 ? Ss 0:00 /usr/lib/systemd/systemd-journald 492 ? S< 0:00 [rpciod] 495 ? Ss 0:00 /usr/sbin/lvmetad -f 505 ? Ss 0:00 /usr/lib/systemd/systemd-udevd 577 ? S< 0:00 [xfs-buf/sda1] 578 ? S< 0:00 [xfs-data/sda1] 579 ? S< 0:00 [xfs-conv/sda1] 580 ? S< 0:00 [xfs-cil/sda1] 581 ? S< 0:00 [xfs-reclaim/sda] 582 ? S< 0:00 [xfs-log/sda1] 583 ? S< 0:00 [xfs-eofblocks/s] 584 ? S 0:00 [xfsaild/sda1] 603 ? S<sl 0:00 /sbin/auditd -n 614 ? S<sl 0:00 /sbin/audispd 618 ? S< 0:00 /usr/sbin/sedispatch 632 ? Ss 0:00 /usr/lib/systemd/systemd-logind 633 ? SNsl 0:00 /usr/libexec/rtkit-daemon 634 ? Ss 0:00 /usr/bin/lsmd -d 635 ? SNs 0:00 /usr/sbin/alsactl -s -n 19 -c -E ALSA_CONFIG_PATH=/et 636 ? Ssl 0:00 /usr/sbin/ModemManager 637 ? Ss 0:00 /bin/dbus-daemon --system --address=systemd: --nofork 641 ? S 0:00 /usr/sbin/chronyd 649 ? Ssl 0:00 /usr/sbin/gssproxy -D 657 ? Ssl 0:00 /usr/lib/polkit-1/polkitd --no-debug 658 ? Rs 0:00 /sbin/rngd -f 659 ? Ss 0:00 /usr/sbin/smartd -n -q never 661 ? Ssl 0:00 /usr/libexec/accounts-daemon 663 ? Ss 0:00 /usr/sbin/abrtd -d -s 665 ? Ss 0:00 /usr/bin/abrt-watch-log -F Backtrace /var/log/Xorg.0. 666 ? Ss 0:00 /usr/bin/abrt-watch-log -F BUG: WARNING: at WARNING: 667 ? Ss 0:00 avahi-daemon: running [linux.local] 689 ? S 0:00 /bin/bash /usr/sbin/ksmtuned 692 ? S 0:00 avahi-daemon: chroot helper 699 ? Ssl 0:00 /usr/bin/python -Es /usr/sbin/firewalld --nofork --no 709 ? Ssl 0:00 /usr/sbin/NetworkManager --no-daemon 814 ? S 0:00 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper 1126 ? Ssl 0:01 /usr/sbin/rsyslogd -n 1127 ? Ssl 0:00 /usr/bin/python -Es /usr/sbin/tuned -l -P 1139 ? Ss 0:00 /usr/sbin/sshd 1161 ? S< 0:00 [cifsiod] 1174 ? Ss 0:00 /usr/sbin/nmbd 1220 ? Ssl 0:00 /usr/sbin/libvirtd 1243 ? Ss 0:00 /usr/sbin/atd -f 1246 ? Ss 0:00 /usr/sbin/crond -n 1251 tty1 Ss+ 0:00 /sbin/agetty --noclear tty1 linux 1731 ? Ss 0:00 /usr/sbin/smbd 1848 ? S 0:00 /usr/sbin/smbd 1849 ? S 0:00 /usr/sbin/smbd 2249 ? Ss 0:00 /usr/libexec/postfix/master -w 2287 ? S 0:00 qmgr -l -t unix -u 2322 ? S 0:00 /usr/sbin/smbd 2330 ? Ss 0:00 /usr/sbin/cupsd -f 2419 ? S 0:00 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/de 2420 ? S 0:00 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/de 2592 ? Ss 0:00 sshd: mako [priv] 2594 ? S 0:00 sshd: mako@pts/0 2595 pts/0 Ss 0:00 -bash 3012 ? R 0:01 [kworker/0:2] 3657 ? S 0:00 pickup -l -t unix -u 3995 pts/0 T 0:00 man ls 4009 pts/0 T 0:00 less -s 4024 ? Ssl 0:00 /usr/libexec/packagekitd 4220 ? S< 0:00 [kworker/0:2H] 4284 ? S 0:00 [kworker/0:1] 4301 ? S< 0:00 [kworker/0:0H] 4327 ? S 0:00 [kworker/0:0] 4352 ? S< 0:00 [kworker/0:1H] 4368 ? S 0:00 sleep 60 4377 pts/0 R+ 0:00 ps ax [/bash]

psコマンドのオプション

x psコマンドを実行したユーザのプロセスを表示
ux psコマンドを実行したユーザのプロセスを、詳細情報も合わせて表示
ax すべてのユーザのプロセスを表示
aux すべてのユーザのプロセスを、詳細情報も合わせて表示