プロセスのすべての情報を表示する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)

推薦する

CSSのline-heightを継承する方法

Line-height はどのように継承されますか?30px などの特定の値を書き込むと、この値が継...

VMware 仮想マシンに固定 IP アドレスを設定する方法 (グラフィック チュートリアル)

1. メニューバーで「編集」→「仮想ネットワーク エディター」を選択して仮想ネットワーク エディタ...

ウェブページの表の分割線を削除する方法

<br />Web テーブルの分割線を削除する方法。実際、上記の 3 つの表はいずれも ...

Docker構成 Alibaba Cloud Container Serviceの操作

Alibaba Cloud Dockerコンテナサービスの設定Alibaba Cloud Image...

Yahooのフロントエンド最適化に関する35のルールについての簡単な説明

概要: 仕事でも面接でも、Web フロントエンドのパフォーマンスを最適化することは非常に重要です。で...

vsftpdで仮想ユーザーログインを設定する方法

yum で vsftpd をインストールします [root@localhost など]# yum -...

Javascript クロージャの使用シナリオの原則の詳細

目次1. 終了2. クロージャの使用シナリオ1.タイムアウトを設定する2. コールバック3. 手ぶれ...

Centos8.3、dockerデプロイメントspringbootプロジェクトの実際のケース分析

導入現在、k8s は非常に人気があり、それについて学ぶために本を購入しました。しかし、k8s では数...

MySql の忘れたパスワードの変更方法はバージョン 5.7 以上に適しています

1. まずmysqld.exeプロセスを停止します2. cmd を開き、mysql の bin ディ...

Docker+nacos+seata1.3.0 のインストールと使用設定チュートリアル

これに先立ち、1日かけてやってみました。Seataは使い方が簡単で超シンプルですが、インストールや設...

カルーセル例の JS 実装

この記事では、カルーセルチャートの小さなケースを実装するためのJSの具体的なコードを参考までに共有し...

Docker で Nginx イメージ サーバーを構築する方法

序文一般的な開発では、画像をディレクトリにアップロードし、ディレクトリとファイル名を連結してデータベ...

Vuexの役割についての深い理解

目次概要コンポーネント間でデータを共有する方法Vuex の原則の紹介Vuexはコンポーネントのグロー...

上下に空白行があるフォームを挿入する解決策

ウェブページを作成するときに、フォームを挿入した後、フォームの上下に空白行が表示されることがよくあり...

Mac VMware Fusion CentOS7 静的 IP 構成チュートリアル図

目次CentOS7をインストールする静的IPの設定viを使用してファイルを編集するCentOS7をイ...