プロセスのすべての情報を表示するLinuxメソッドの例

プロセスのすべての情報を表示するLinuxメソッドの例

サーバー上にタスク プロセスがあります。 ps -ef | grep task を使用して表示すると、基本的な情報しか取得できません。 対応するファイル パスと起動コマンドの完全なパスを知る必要がある場合、どこから始めればよいかわかりません。

今日は、起動コマンドのフルパス、対応するファイルのフルパス、その他の情報を含むプロセスのすべての情報を表示する方法をお教えします: ls -l /proc/PID

たとえば、 ps -ef | grep webhook を使用してプロセスを表示すると、次の情報のみを取得できます。

> ps -ef | grep ウェブフック
ルート 15902 1 0 Aug15 ? 00:00:00 python -u src/webhook.py
ルート 30639 30612 0 22:50 pts/0 00:00:00 grep --color=auto webhook

次にls -l /proc/15902を実行します。

> ll /proc/15902
dr-xr-xr-x 2 ルート ルート 0 9月18日 22:52 attr
-rw-r--r-- 1 ルート ルート 0 9月18日 22:52 自動グループ
-r-------- 1 ルート ルート 0 9月18日 22:52 auxv
-r--r--r-- 1 ルート ルート 0 9月18日 22:52 cgroup
--w------ 1 ルート ルート 0 9月18日 22:52 clear_refs
-r--r--r-- 1 ルート ルート 0 8月15日 16:48 cmdline
-rw-r--r-- 1 ルート ルート 0 9月18日 22:52 通信
-rw-r--r-- 1 ルート ルート 0 9月18日 22:52 coredump_filter
-r--r--r-- 1 ルート ルート 0 9月18日 22:52 cpuset
lrwxrwxrwx 1 ルート ルート 0 8月15日 16:48 cwd -> /services/apps/webhook
-r-------- 1 ルート ルート 0 9月18日 22:52 environ
lrwxrwxrwx 1 root root 0 8月15日 16:48 exe -> /usr/bin/python2.7
dr-x------ 2 ルート ルート 0 8月15日 16:48 fd
dr-x------ 2 ルート ルート 0 9月18日 22:52 fdinfo
-rw-r--r-- 1 ルート ルート 0 9月18日 22:52 gid_map
-r-------- 1 ルート ルート 0 9月18日 22:52 io
-r--r--r-- 1 ルート ルート 0 9月18日 22:52 制限
...

注目すべき主なファイルがいくつかあります。

  • cwd: ファイルが置かれているディレクトリ
  • exe: 実行されるコマンドのフルパス
  • environ: コマンド実行時の環境変数

補充:

#lsof は現在開いているシステム ファイルを一覧表示します。多くの場合、どのプログラムがポートを占有しているかを確認するために -i オプションとともに使用されます [root@bogon ~]# lsof -i:80
コマンド PID ユーザー FD タイプ デバイス サイズ/オフ ノード名
httpd 6701 ルート 4u IPv6 64259 0t0 TCP *:http (LISTEN)
httpd 6702 apache 4u IPv6 64259 0t0 TCP *:http (LISTEN)
httpd 6703 apache 4u IPv6 64259 0t0 TCP *:http (LISTEN)
httpd 6704 apache 4u IPv6 64259 0t0 TCP *:http (LISTEN)
httpd 6705 apache 4u IPv6 64259 0t0 TCP *:http (LISTEN)
httpd 6706 apache 4u IPv6 64259 0t0 TCP *:http (LISTEN)
[root@bogon ~]# lsof -i:22
コマンド PID ユーザー FD タイプ デバイス サイズ/オフ ノード名
sshd 931 ルート 3u IPv4 20955 0t0 TCP *:ssh (LISTEN)
sshd 931 ルート 4u IPv6 20965 0t0 TCP *:ssh (LISTEN)
sshd 3926 root 3u IPv4 36374 0t0 TCP bogon:ssh->bogon:53436 (確立)
[root@bogon ~]# 


#端末上のすべてのユーザーのプロセスに関するすべての情報を取得します [root@bogon ~]# ps -aux
ユーザー PID %CPU %MEM VSZ RSS TTY STAT 開始時刻 コマンド
ルート 1 0.0 0.4 128092 4724 ? Ss 6月25日 0:03 /usr/lib/systemd/syste
ルート 2 0.0 0.0 0 0 ? S 6月25日 0:00 [kthreadd]
ルート 3 0.0 0.0 0 0 ? S 6月25日 0:00 [ksoftirqd/0]
ルート 6 0.0 0.0 0 0 ? S 6月25日 0:00 [kworker/u256:0]
ルート 7 0.0 0.0 0 0 ? S 6月25日 0:00 [migration/0]
ルート 8 0.0 0.0 0 0 ? S 6月25日 0:00 [rcu_bh]
ルート 9 0.0 0.0 0 0 ? R 6月25日 0:01 [rcu_sched]
ルート 10 0.0 0.0 0 0 ? S 6月25日 0:00 [watchdog/0]
ルート 12 0.0 0.0 0 0 ? S< 6月25日 0:00 [khelper]
ルート 13 0.0 0.0 0 0 ? S 6月25日 0:00 [kdevtmpfs]
ルート 14 0.0 0.0 0 0 ? S< 6月25日 0:00 [netns]
ルート 15 0.0 0.0 0 0 ? S 6月25日 0:00 [khungtaskd]
root 16 0.0 0.0 0 0 ? S< 6月25日 0:00 [書き戻し]
ルート 17 0.0 0.0 0 0 ? S< 6月25日 0:00 [kintegrityd]
ルート 18 0.0 0.0 0 0 ? S< 6月25日 0:00 [bioset]
ルート 19 0.0 0.0 0 0 ? S< 6月25日 0:00 [kblockd]
ルート 20 0.0 0.0 0 0 ? S< 6月25日 0:00 [md]
ルート 26 0.0 0.0 0 0 ? S 6月25日 0:00 [kswapd0]
ルート 27 0.0 0.0 0 0 ? SN 6月25日 0:00 [ksmd]
ルート 28 0.0 0.0 0 0 ? SN 6月25日 0:00 [khugepaged]
ルート 29 0.0 0.0 0 0 ? S 6月25日 0:00 [fsnotify_mark]
ルート 30 0.0 0.0 0 0 ? S< 6月25日 0:00 [暗号]
ルート 38 0.0 0.0 0 0 ? S< 6月25日 0:00 [kthrotld]
ルート 40 0.0 0.0 0 0 ? S< 6月25日 0:00 [kmpath_rdacd]
ルート 41 0.0 0.0 0 0 ? S< 6月25日 0:00 [kpsmoused]
ルート 43 0.0 0.0 0 0 ? S< 6月25日 0:00 [ipv6_addrconf]
ルート 62 0.0 0.0 0 0 ? S< 6月25日 0:00 [deferwq]
ルート 94 0.0 0.0 0 0 ? S 6月25日 0:00 [kauditd]
ルート 233 0.0 0.0 0 0 ? S< 6月25日 0:00 [mpt_poll_0]
ルート 234 0.0 0.0 0 0 ? S< 6月25日 0:00 [ata_sff]
ルート 235 0.0 0.0 0 0 ? S< 6月25日 0:00 [mpt/0]
ルート 241 0.0 0.0 0 0 ? S 6月25日 0:00 [scsi_eh_0]
ルート 243 0.0 0.0 0 0 ? S< 6月25日 0:00 [scsi_tmf_0]
ルート 245 0.0 0.0 0 0 ? S 6月25日 0:00 [scsi_eh_1]
ルート 246 0.0 0.0 0 0 ? S 6月25日 0:00 [kworker/u256:2]
。 。 。 。 。 。


#サービスプログラムのすべてのプロセス番号を取得する [root@bogon ~]# pgrep httpd
6701
6702
6703
6704
6705
6706
#プロセスを強制終了します。killall はプログラム名ですべてのプロセスを強制終了します [root@bogon ~]# killall httpd
[root@bogon ~]# pgrep httpd
[root@bogon ~]# 
#kill kill program [root@bogon ~]# cat a.sh #デッドループ #!/bin/bash
真実である
する
  echo "linux">/dev/null
終わり
[root@bogon ~]# ./a.sh
^Z
[1]+ ./a.shを停止しました
[root@bogon ~]# ps
  PID TTY 時間 コマンド
 3930 ポイント/1 00:00:00 バッシュ
 11719 ポイント/1 00:00:01 a.sh
 11729 ポイント/1 00:00:00 ps
[root@bogon ~]# kill 11719 #この問題は偶然発見しましたが、原因はまだ明らかではありません [root@bogon ~]# ps
  PID TTY 時間 コマンド
 3930 ポイント/1 00:00:00 バッシュ
 11719 ポイント/1 00:00:01 a.sh
 11733 ポイント/1 00:00:00 ps
[root@bogon ~]# kill -9 11719 #通常の kill では kill できないため、-9 シグナルを送信して強制的に kill すると、問題は解決します [root@bogon ~]# ps
  PID TTY 時間 コマンド
 3930 ポイント/1 00:00:00 バッシュ
 11734 ポイント/1 00:00:00 ps
[1]+ ./a.shを殺した
[root@bogon ~]# ./a.sh &
[1] 11735
[root@bogon ~]# ps
  PID TTY 時間 コマンド
 3930 ポイント/1 00:00:00 バッシュ
 11735 ポイント/1 00:00:01 a.sh
 11736 ポイント/1 00:00:00 ps
[root@bogon ~]# kill 11735 #通常のバックグラウンド実行プログラムは直接終了できます
[root@bogon ~]# ps
  PID TTY 時間 コマンド
 3930 ポイント/1 00:00:00 バッシュ
 11737 ポイント/1 00:00:00 ps
[1]+ ./a.shを終了しました
[root@bogon ~]#

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linuxでプロセスが占有するポート番号を表示する
  • Linuxでプロセススタック情報を表示する方法
  • Linux でプロセスによって開かれたファイル ハンドルの数を表示する方法と、その数を変更する方法
  • Linux でのプロセス メモリ使用量の表示に関する詳細な理解
  • LINUX でプロセスを表示する 4 つの方法 (要約)

<<:  Vue.js ドラッグ可能なテキストボックスコンポーネントの使用方法の詳細な説明

>>:  MySQLのインストールと設定方法のグラフィックチュートリアル(CentOS7)

推薦する

要素テーブルからヘッダーを削除する方法

show-header属性を使用したドキュメントのヒントshow-header <el-テーブ...

一般的な MySQL ストレージ エンジンとパラメータ設定およびチューニングの紹介

MyISAM、MySQLでよく使われるストレージエンジン特性: 1. 同時実行性とロックレベル2. ...

VPS はオフライン ダウンロード サーバーを構築します (ネットワーク ディスクの時代以降)

モチベーション学習の必要性から、海外のサーバーメーカー(どこのメーカーかは言いません)のVPSサービ...

DockerはRedis5.0をビルドし、データをマウントします

目次1. 永続データの簡単なマウント2. DockerFileでイメージをビルドし、設定ファイルを指...

Dockerでローカルマシン(ホストマシン)にアクセスする方法

質問Docker でローカル データベースにアクセスするにはどうすればよいでしょうか? 127.0....

トークンの有効期限が切れたときにページを更新するときに繰り返しプロンプトが表示されないようにする Vue について

トークンの有効期限が切れたら、ページを更新します。ページの読み込み時にバックエンドに複数のリクエスト...

JavaScript を学ぶときに知っておくべき 3 つのヒント

目次1. 魔法の拡張演算子1. 配列をコピーする2. 配列を結合する3. オブジェクトを展開する2....

CSS3は小さな矢印のさまざまなグラフィック効果を実現します

CSS を使ってさまざまなグラフィックを実現できるのは素晴らしいことです。画像を切り取る必要はなく、...

MySQL countの詳細な説明と関数のサンプルコード

mysql countの詳細な説明count関数はテーブルや配列内のレコードを数えるために使われます...

MySQL での find_in_set() 関数の使用に関する詳細な説明

まず、例を見てみましょう。記事テーブルにはタイプフィールドがあり、1 見出し、2 おすすめ、3 ホッ...

MySQL接続がハングする理由の詳細な説明

目次1. 背景建築問題現象2. 分析プロセス接続プール不安に陥る雲を晴らして光を見よう3. 解決策I...

Tomcatの起動が遅い問題を素早く解決、超簡単

今日、私はクラスメートが問題を解決するのを手伝いました - Tomcat の起動が非常に遅く、約 5...

js でシンプルなタブを実装する

タブ選択カードは、実際の Web ページで非常に頻繁に使用されます。基本的に、すべての Web ペー...

デザイン協会: なぜ間違った場所を探したのですか?

数日前、バスで仕事に行きました。バスのカードリーダーの実際の使用シーンを実際に見て、カードリーダーの...

Linux でソフトウェア パッケージのバージョンをアップグレードする方法の詳細な説明

Linux環境で、特定のソフトウェア(パッケージ)がインストールされているかどうかを確認したい。 r...