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

推薦する

Docker で Jenkins-2.249.3-1.1 をインストールする詳細な手順

目次1. Dockerをインストールする2. Jenkinsイメージファイルを取得する3. マウント...

Docker コンテナ アプリケーションで避けるべき 10 の悪い習慣

コンテナが企業の IT インフラストラクチャに欠かせない要素となっていることは間違いありません。コン...

ウェブページのカラーマッチングスキルについての簡単な説明(フロントエンド開発者必読)

一般的に、Web ページの背景色は、より柔らかく、よりシンプルで、より明るく、暗いテキストとマッチし...

MySQL のソート関数 field() の詳細な例

序文私たちの日常の開発プロセスでは、ソートが頻繁に使用され、そのような要求がある場合もあります。たと...

JavaScript の基本: ループと配列

目次ループ - for forループの基本的な使い方ループを終了するネストされたループ配列配列とは何...

一定期間の日ごと、時間ごとの統計データを取得するMySQLの詳しい説明

毎日の統計情報を取得するプロジェクトを実行する際、プロジェクト ログを分析する必要があります。要件の...

MySQL 文字列分割の例 (区切り文字なしの文字列抽出)

区切り文字なしの文字列抽出質問の要件データベース内のフィールド値:実装効果: 1行のデータを複数行に...

WeChat アプレットのシンプルなログイン ページの実装 (ソース コード付き)

目次1. 上の写真2. ユーザーが存在しない3. コードをアップロードする1. 上の写真 2. ユー...

Windows での MySQL インストール チュートリアル (画像とテキスト付き)

MySQL インストール手順 MySQL は、スウェーデンの MySQL AB によって開発された...

RR および RC 分離レベルでのインデックスとロックのテスト スクリプトのサンプル コード

基本概念現在の読み取りとスナップショットの読み取りMVCC では、読み取り操作はスナップショット読み...

Windows に MySQL 5.7.18 の解凍バージョンをインストールするチュートリアル

1. インストールプロセスMySQL バージョン: 5.7.18 1. my.ini ファイル(簡易...

CSS マージンの重複とその防止方法

2 つ以上のブロックレベル ボックスの垂直に隣接するエッジが重なり合っています。結果として得られる境...

Linux のファイル システム タイプの表示方法の例

Linux でパーティションのファイル システム タイプを確認する方法。パーティションのファイル シ...

初心者向けウェブサイト構築チュートリアルの概要

これら 6 つの記事を書いた後、私は少し混乱し始めました。次にどこに書けばいいのか分かりません。ドメ...

js は、Element の入力コンポーネントのいくつかの機能を実装し、それをコンポーネントにカプセル化します (サンプルコード)

現在実装されているのは、基本的な使用方法、クリア可能なボックス、パスワードボックスです。参考リンク:...