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

推薦する

MySQL ディープ ページング (数千万のデータを素早くページ分割する方法)

目次序文場合最適化まとめ序文バックエンド開発では、一度に大量のデータがロードされ、メモリやディスク ...

JSプロトタイプとプロトタイプチェーンについての簡単な説明

目次1. プロトタイプ2. プロトタイプポインタ: __proto__要約する1. プロトタイプJa...

MySQL および Oracle のバッチ挿入 SQL の一般的な記述例

目次例えば:一般的な執筆:要約する例えば:次に、データベースのUSERテーブルにUserオブジェクト...

Webフロントエンドベクターアイコンの使い方

序文フロントエンドページを書くとき、小さなアイコンなどの画像を使うことが多いです。画像を使うとコード...

Vue プロジェクトで Baidu Map API を使用する方法

目次1. Baidu Map Open Platformにアカウントを登録してログインする2. 必要...

Docker ケース分析: Redis サービスの構築

目次1 マウントディレクトリとファイルを作成する2 Redisイメージを取得する3 コンテナを作成し...

VUEプロジェクトでXSS攻撃に遭遇した実体験

目次序文原因を発見するカスタムフィルタリングルール要約する序文インターネットの急速な発展に伴い、情報...

jQueryは何に使われるのですか?jQueryは実際にはjsフレームワークです

jQuery 入門jQuery ライブラリは、簡単なマークアップ行を使用して Web ページに追加で...

jsは、州、市、地区の3レベルのリンクの非選択ドロップダウンボックスバージョンを実現します。

インターネットで3レベルリンクを検索したところ、すべてオプションで書かれていました。突然、別の方法で...

Vue プロジェクトをパッケージ化して Apache サーバーにデプロイする手順

開発環境では、vue プロジェクトは、ローカルで Express サーバーを構築することをベースにし...

Bash で山括弧を使用するその他の方法

序文この記事では、山括弧のその他の用途をさらに詳しく見ていきます。前回の記事では、山括弧 (<...

40 CSS/JSスタイルと機能的な技術処理

1-ドロップダウン選択ボックスのスタイル設定 - ドロップダウン リストを変更します。 2- <...

Linux ターミナルでドメイン IP アドレスを見つけるコマンド (5 つの方法)

このチュートリアルでは、Linux ターミナルでドメイン名またはコンピューター名の IP アドレスを...

MySQL sql_mode の変更が有効にならない理由と解決策

目次序文シナリオシミュレーション要約する序文最近、sql_mode の話題については何度も話し合われ...

Linuxのlocateコマンドの使い方

01. コマンドの概要実際には、locate コマンドは find -name の別の書き方ですが、...