【Linux】psコマンド

■ はじめに

プロセス一覧表示する psコマンド について、とりあげる

目次

【1】psコマンド
【2】オプション
【3】サンプル
【4】おまけ:PostgreSQL の セキュリティ

【1】psコマンド

 * OS内部で現在実行されている
 プロセス一覧およびCPUの使用時間を表示するコマンド
* ps = Process Status の略

実行例

$ ps
  PID TTY          TIME CMD
 4459 pts/1    00:00:00 bash
 4465 pts/1    00:00:00 top
 4490 pts/1    00:00:03 top
 5037 pts/1    00:00:00 ps

# システム全体のプロセス状況を表示
$  ps aux

【2】オプション

* 以下のサイトを参照

https://atmarkit.itmedia.co.jp/ait/articles/1603/28/news022.html

# オプション 説明
1 -a 自分以外のユーザーのプロセスも表示
2 -u ユーザ名と開始時刻を表示
3 -x 制御端末のないプロセスの情報も表示
4 -w 出力時の幅を広げる
5 -e コマンド名の後に環境変数などを表示
6 -p プロセスIDを指定して表示

【3】サンプル

* Apache(httpd)のプロセスのみ表示

Step1 : grep とパイプを使う

ps aux | grep httpd

 Step2 : プロセス番号(PID)を指定する

ps -p 23231

【4】おまけ:PostgreSQL の セキュリティ

 PostgreSQLの環境変数「PGPASSWORD」について、
公式サイトで以下のように書かれている。

https://www.postgresql.jp/document/8.1/html/libpq-envars.html

より抜粋
~~~~~~~~~~
この環境変数は、
セキュリティ上の理由(いくつかのオペレーティングシステムでは
root以外のユーザがpsコマンド経由で環境変数を見ることができるため)から
現在では推奨されていません。
~~~~~~~~~~

「psコマンド経由で環境変数を見ることができる」とは「ps eオプション」。

https://www.greptips.com/posts/1180/#ps-e%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3

より抜粋
~~~~~~~
ただし、/proc/[pid]/environが
自ユーザで起動しているプロセスのものでなければ、
rootユーザでないと開けないのと同様に、
rootでpsを行うか、
sudoしないとeオプションをつけても環境変数が表示されない。
~~~~~~~

ん、、、
ってことは、やっぱり環境変数に設定しても盗まれないのでは、、、

参考文献

http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230860/
http://webkaru.net/linux/ps-command/
http://www.atmarkit.co.jp/ait/articles/1603/28/news022.html
https://qiita.com/shuntaro_tamura/items/4016868bda604baeac3c
https://eng-entrance.com/linux-command-ps

関連記事

バックグラウンド関連のコマンド
https://dk521123.hatenablog.com/entry/2020/01/30/000000
Linux ~ パフォーマンスに関わるコマンド ~
https://dk521123.hatenablog.com/entry/2015/02/21/112554