GNU/Linux >> Linux の 問題 >  >> Linux

procps-ngを使用してターミナルでLinuxシステムを監視します

プロセスは、POSIXの用語では、オペレーティングシステムのカーネルによって管理されている進行中のイベントです。アプリケーションを起動するとプロセスが生成されますが、システム時間を正確に保つプログラム、新しいファイルシステムを監視するプログラム、ファイルのインデックスを作成するプログラムなど、コンピューターのバックグラウンドで実行されているプロセスは他にもたくさんあります。

>

その他のLinuxリソース

  • Linuxコマンドのチートシート
  • 高度なLinuxコマンドのチートシート
  • 無料のオンラインコース:RHELの技術概要
  • Linuxネットワーキングのチートシート
  • SELinuxチートシート
  • Linuxの一般的なコマンドのチートシート
  • Linuxコンテナとは何ですか?
  • 最新のLinux記事

ほとんどのオペレーティングシステムには、ある種のシステムアクティビティモニターがあり、特定の瞬間に実行されているプロセスを知ることができます。 Linuxには、GNOME System MonitorやKSysGuardなど、選択できるものがいくつかあります。どちらもデスクトップ上の便利なアプリケーションですが、Linuxはターミナルでシステムを監視する機能も提供します。どちらを選択する場合でも、コンピュータの管理に積極的な役割を果たす人にとっては、特定のプロセスを調べることが一般的なタスクです。

この記事では、プログラムのプロセスID(PID)を見つける方法を示します。このための最も一般的なツールは、psを含むprocps-ngパッケージによって提供されます。 およびpstreepidof 、および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を理解する。


Linux
  1. edを使用してLinuxターミナルのテキストエディタを起動します

  2. Linuxターミナルで冒険に出かけましょう

  3. inxiを使用したLinuxシステムの詳細

  1. Linuxでjconsoleを使用してJavaを監視する

  2. Linuxのセキュリティ:fail2banでシステムを保護する

  3. Sysstatを使用してLinuxシステムのパフォーマンスを監視する方法

  1. CheckmkでLinuxサーバーを監視する

  2. お気に入りのロゴでLinux端末をカスタマイズします

  3. LinuxターミナルのNewsboatでRSSフィードを復活させる