プロセスは、POSIXの用語では、オペレーティングシステムのカーネルによって管理されている進行中のイベントです。アプリケーションを起動するとプロセスが生成されますが、システム時間を正確に保つプログラム、新しいファイルシステムを監視するプログラム、ファイルのインデックスを作成するプログラムなど、コンピューターのバックグラウンドで実行されているプロセスは他にもたくさんあります。
>
その他のLinuxリソース
- Linuxコマンドのチートシート
- 高度なLinuxコマンドのチートシート
- 無料のオンラインコース:RHELの技術概要
- Linuxネットワーキングのチートシート
- SELinuxチートシート
- Linuxの一般的なコマンドのチートシート
- Linuxコンテナとは何ですか?
- 最新のLinux記事
ほとんどのオペレーティングシステムには、ある種のシステムアクティビティモニターがあり、特定の瞬間に実行されているプロセスを知ることができます。 Linuxには、GNOME System MonitorやKSysGuardなど、選択できるものがいくつかあります。どちらもデスクトップ上の便利なアプリケーションですが、Linuxはターミナルでシステムを監視する機能も提供します。どちらを選択する場合でも、コンピュータの管理に積極的な役割を果たす人にとっては、特定のプロセスを調べることが一般的なタスクです。
この記事では、プログラムのプロセスID(PID)を見つける方法を示します。このための最も一般的なツールは、ps
を含むprocps-ngパッケージによって提供されます。 およびpstree
、pidof
、およびpgrep
コマンド。
実行中のプログラムのPIDを見つける
実行していることがわかっている特定のアプリケーションのプロセスID(PID)を取得したい場合があります。 pidof
およびpgrep
コマンドはコマンド名でプロセスを検索します。
pidof
commandは、コマンドのPIDを返し、名前で正確なコマンドを検索します。
$ pidof bash
1776 5736
pgrep
コマンドは正規表現(regex)を許可します:
$ pgrep .sh
1605
1679
1688
1776
2333
5736
$ pgrep bash
5736
ファイルでPIDを検索
fuser
で特定のファイルを使用して、プロセスのPIDを見つけることができます。 コマンド。
$ fuser --user ~/example.txt
/home/tux/example.txt: 3234(tux)
PIDでプロセス名を取得
PID番号をお持ちの場合 プロセスの場合、それを生成したコマンドではなく、ps
を使用して「逆引き参照」を実行できます。 :
$ ps 3234
PID TTY STAT TIME COMMAND
5736 pts/1 Ss 0:00 emacs
すべてのプロセスを一覧表示
ps
コマンドはプロセスを一覧表示します。 -e
を使用して、システム上のすべてのプロセスを一覧表示できます。 オプション:
$ ps -e | less
PID TTY TIME CMD
1 ? 00:00:03 systemd
2 ? 00:00:00 kthreadd
3 ? 00:00:00 rcu_gp
4 ? 00:00:00 rcu_par_gp
6 ? 00:00:00 kworker/0:0H-events_highpri
[...]
5648 ? 00:00:00 gnome-control-c
5656 ? 00:00:00 gnome-terminal-
5736 pts/1 00:00:00 bash
5791 pts/1 00:00:00 ps
5792 pts/1 00:00:00 less
(END)
プロセスだけをリストする
ps -e
の出力 圧倒される可能性があるため、-U
を使用してください 1人のユーザーのプロセスを確認するには:
$ ps -U tux | less
PID TTY TIME CMD
3545 ? 00:00:00 systemd
3548 ? 00:00:00 (sd-pam)
3566 ? 00:00:18 pulseaudio
3570 ? 00:00:00 gnome-keyring-d
3583 ? 00:00:00 dbus-daemon
3589 tty2 00:00:00 gdm-wayland-ses
3592 tty2 00:00:00 gnome-session-b
3613 ? 00:00:00 gvfsd
3618 ? 00:00:00 gvfsd-fuse
3665 tty2 00:01:03 gnome-shell
[...]
これにより、ソートするプロセスが200少なくなります(実行しているシステムに応じて、100を与えるか、または100を取ります)。
pstree
を使用すると、同じ出力を異なる形式で表示できます。 コマンド:
$ pstree -U tux -u --show-pids
[...]
├─gvfsd-metadata(3921)─┬─{gvfsd-metadata}(3923)
│ └─{gvfsd-metadata}(3924)
├─ibus-portal(3836)─┬─{ibus-portal}(3840)
│ └─{ibus-portal}(3842)
├─obexd(5214)
├─pulseaudio(3566)─┬─{pulseaudio}(3640)
│ ├─{pulseaudio}(3649)
│ └─{pulseaudio}(5258)
├─tracker-store(4150)─┬─{tracker-store}(4153)
│ ├─{tracker-store}(4154)
│ ├─{tracker-store}(4157)
│ └─{tracker-store}(4178)
└─xdg-permission-(3847)─┬─{xdg-permission-}(3848)
└─{xdg-permission-}(3850)
プロセスだけをコンテキストとともに一覧表示する
-u
を使用すると、所有しているすべてのプロセスの追加のコンテキストを確認できます。 オプション。
$ ps -U tux -u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
tux 3545 0.0 0.0 89656 9708 ? Ss 13:59 0:00 /usr/lib/systemd/systemd --user
tux 3548 0.0 0.0 171416 5288 ? S 13:59 0:00 (sd-pam)
tux 3566 0.9 0.1 1722212 17352 ? S<sl 13:59 0:29 /usr/bin/pulseaudio [...]
tux 3570 0.0 0.0 664736 8036 ? SLl 13:59 0:00 /usr/bin/gnome-keyring-daemon [...]
[...]
tux 5736 0.0 0.0 235628 6036 pts/1 Ss 14:18 0:00 bash
tux 6227 0.0 0.4 2816872 74512 tty2 Sl+14:30 0:00 /opt/firefox/firefox-bin [...]
tux 6660 0.0 0.0 268524 3996 pts/1 R+ 14:50 0:00 ps -U tux -u
tux 6661 0.0 0.0 219468 2460 pts/1 S+ 14:50 0:00 less
PIDのトラブルシューティング
特定のアプリケーションで問題が発生した場合、またはアプリケーションがシステム上で他に何を使用しているかについて知りたい場合は、pmap
を使用して実行中のプロセスのメモリマップを確認できます。 :
$ pmap 1776
5736: bash
000055f9060ec000 1056K r-x-- bash
000055f9063f3000 16K r---- bash
000055f906400000 40K rw--- [ anon ]
00007faf0fa67000 9040K r--s- passwd
00007faf1033b000 40K r-x-- libnss_sss.so.2
00007faf10345000 2044K ----- libnss_sss.so.2
00007faf10545000 4K rw--- libnss_sss.so.2
00007faf10546000 212692K r---- locale-archive
00007faf1d4fb000 1776K r-x-- libc-2.28.so
00007faf1d6b7000 2044K ----- libc-2.28.so
00007faf1d8ba000 8K rw--- libc-2.28.so
[...]
プロセスID
procps-ng パッケージには、システムが現在使用しているものを調査および監視するために必要なすべてのコマンドが含まれています。 Linuxシステムのすべての異なる部分がどのように組み合わされているかを知りたい場合でも、エラーを調査している場合でも、コンピューターのパフォーマンスを最適化しようとしている場合でも、これらのコマンドを学習すると、 OSを理解する。