この記事では、プロセス識別番号(PID)によってプロセス名を見つける方法を見ていきます。実際のソリューションに飛び込む前に、Linuxによってプロセスがどのように作成および識別されるかについて簡単に説明しましょう。
ユーザーまたはシステム(Linux)がプログラムを起動するたびに、カーネルがプロセスを作成します。プロセスは、入出力データ、変数など、プログラムの実行の詳細をメモリに保持します。
重要なのは、Linuxはマルチタスクオペレーティングシステムであるため、複数のプログラムを同時に実行することです。つまり、各プロセスプロセスを具体的に特定する必要があります。
カーネルは、プロセス IDを使用して各プロセスを識別します ( PID )、プロセスのすべてのインスタンスには、一意の PIDが必要です。 実行エラーを回避するために、プロセスが呼び出されたときに割り当てられる他のプロセスから。
/ procファイルシステムには、システムで現在実行されているプロセスに関する情報が格納され、各プロセスのディレクトリが含まれています。
lsコマンドを使用してその内容を一覧表示しますが、一覧が長くなる可能性があるため、パイプラインとより少ないユーティリティを使用して、以下のように便利な方法で/procの内容を表示します。
$ ls / proc OR $ ls / proc |少ないリスト/procファイルシステム
11682230 25329584 7386 83 driver schedstat10169 2234 2503 33603 74830 execdomains scsi1070 17 2247 2507 34610 7411 833 fb self1081 1702 2256 2523 349611 7423 836 filesystems slabinfo109 1714 2258 253 35 612 745 839 fs softirqs11173 2266 25513661374684割り込みstat11017602273 26362 62 75844 iomem swaps1188 1763 2278 2688 3642 63 7533 85 ioports sys12 1769 2282 2694 3643 64 7589 86 irq sysrq-trigger1204 177 2283 2695 sysvipc1209 1773 2285 2698 38 65 7619 87 kcore thread-self1254 18 2287 2699 39 6676899キーtimer_list1318472295 27 3974 67769094キーユーザーtimer_stats15 1914 23 2702 3976 68 77977 kmsg tty152 1917 2308 28 4273 6897 7725 981 kpagecgroup uptime153 1918 2309 280 4374 69 7729 987 kpagecount version154 1938 2310 2815 4392 6969 7733 997 kpageflags version_signature155 1956 2311 2817 44 6980 78 acpi loadavg vmallocinfo 79 asound locks vmstat1565 1986 2316 283 4543 70790 buddyinfo mdstat zoneinfo1567 1988 2317 29 46 71 8 bus meminfo157 2 2324 2935 461 7102 80 cgroups misc1579 20 2347 2944 4686 72808 cmdline modules158 2010 2354 3 477381コンソールマウント158420432436 30 4700 810 cpuinfo mtrr159 2044 2437 3016 5 7311815 crypto net1590 21 2442 31515732282デバイスpagetypeinfo1621672443 318 5273 7347820diskstatsパーティション1 60 22 2492 32 5274 7367 823 dma sched_debug
上のスクリーンショットから、番号が付けられたディレクトリには、実行中のプロセスに関する情報ファイルが格納されています。各番号は PIDに対応しています。 。
以下はsystemdのファイルのリストです PID 1で処理する :
$ ls / proc / 1ShowSystemDプロセスPID
ls:シンボリックリンクを読み取れません'/ proc / 1 / cwd':アクセスが拒否されました:シンボリックリンクを読み取れません' / proc / 1 / root':アクセスが拒否されました:シンボリックリンクを読み取れません' / proc / 1 / exe':パーミッションdeniatedattr coredump_filter gid_map mountinfo oom_score schedstat statusautogroup cpuset io mounts oom_score_adj sessionid syscallauxv cwd Limits mountstats pagemap setgroups taskcgroup environ loginuid net personality smaps timersclear_refs exe map_files ns projid_>>以下の例のように、ps、top、比較的新しいglanceコマンドなどの従来のLinuxコマンドに加えて、さらに多くのコマンドを使用して、プロセスとそのPIDを監視できます。
$ ps auxPIDUSER PID%CPU%MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.0 185728 6268で実行中のプロセスを表示しますか? Ss 10:15 0:01 / sbin/initスプラッシュルート20.00.0 0 0? S 10:15 0:00 [kthreadd] root 3 0.0 0.0 0 0? S 10:15 0:00 [ksoftirqd / 0] root 5 0.0 0.0 0 0? S <10:15 0:00 [kworker / 0:0H] root 7 0.0 0.0 0 0? S 10:15 0:09 [rcu_sched] root 8 0.0 0.0 0 0? S 10:15 0:00 [rcu_bh] root 9 0.0 0.0 0 0? S 10:15 0:00 [migration / 0] root 10 0.0 0.0 0 0? S 10:15 0:00 [watchdog / 0] root 11 0.0 0.0 0 0? S 10:15 0:00 [watchdog / 1] root 12 0.0 0.0 0 0? S 10:15 0:00 [migration / 1] root 13 0.0 0.0 0 0? S 10:15 0:00 [ksoftirqd / 1] root 15 0.0 0.0 0 0? S <10:15 0:00 [kworker / 1:0H] root 16 0.0 0.0 0 0? S 10:15 0:00 [watchdog / 2] root 17 0.0 0.0 0 0? S 10:15 0:00 [migration / 2] root 18 0.0 0.0 0 0? S 10:15 0:00 [ksoftirqd / 2] root 20 0.0 0.0 0 0? S <10:15 0:00 [kworker / 2:0H] root 21 0.0 0.0 0 0? S 10:15 0:00 [watchdog / 3] root 22 0.0 0.0 0 0? S 10:15 0:00 [migration / 3] root 23 0.0 0.0 0 0? S 10:15 0:00 [ksoftirqd / 3] root 25 0.0 0.0 0 0? S <10:15 0:00 [kworker / 3:0H] root 26 0.0 0.0 0 0? S 10:15 0:00 [kdevtmpfs] root 27 0.0 0.0 0 0? S <10:15 0:00 [netns] root 28 0.0 0.0 0 0? S <10:15 0:00 [perf] ....従来のtopコマンドを使用してLinuxプロセスを監視します。
$ top一瞥を使用してLinuxプロセスを監視する 、Linux用の新しいリアルタイムプロセス監視ツール。
$一瞥LinuxシステムにGlanceをインストールする方法の詳細をご覧ください。
プロセスPID番号を確認する
PIDを見つけるには プロセスの場合、
pidof
を使用できます 、 PIDを出力する簡単なコマンド プロセスの例:$ pidof firefox $ pidof python $ pidof cinnamonPID をすでに知っていると仮定して、焦点に戻ります プロセスの場合、以下のコマンドフォームを使用してその名前を印刷できます:
$ ps -p PID -o format場所:
-p
PIDを指定します-o
formatは、ユーザー定義のフォーマットを有効にしますPID番号を使用してプロセス名を見つける
このセクションでは、ユーザー定義の形式(
comm=
)を使用して、PID番号を使用してプロセス名を見つける方法を説明します。 これは、プロセス名と同じコマンド名を意味します。$ ps -p 2523 -o comm =$ ps -p 2295 -o comm =追加の使用情報とオプションについては、 ps manを参照してください。 ページ。
$ man psPID番号を使用してプロセスを強制終了する場合は、「PIDを使用してLinuxプロセスを検索して強制終了する」をお読みになることをお勧めします。
PID を使用してプロセス名を見つける他のより良い方法を知っている場合は、今のところ以上です。 、以下のコメントセクションから共有してください。
Linux