■ はじめに
プロセスに関するコマンドを扱う プロセス一覧表示する psコマンド について、とりあげる
目次
【1】psコマンド 1)オプション 2)サンプル 3)おまけ:PostgreSQL の セキュリティ 【2】& 【3】fgコマンド
【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
1)オプション
* 以下のサイトを参照
https://atmarkit.itmedia.co.jp/ait/articles/1603/28/news022.html
# | オプション | 説明 |
---|---|---|
1 | -a | 自分以外のユーザーのプロセスも表示 |
2 | -u | ユーザ名と開始時刻を表示 |
3 | -x | 制御端末のないプロセスの情報も表示 |
4 | -w | 出力時の幅を広げる |
5 | -e | コマンド名の後に環境変数などを表示 |
6 | -p | プロセスIDを指定して表示 |
2)サンプル
* Apache(httpd)のプロセスのみ表示
Step1 : grep とパイプを使う
ps aux | grep httpd
Step2 : プロセス番号(PID)を指定する
ps -p 23231
3)おまけ: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オプションをつけても環境変数が表示されない。 ~~~~~~~ ん、、、 ってことは、やっぱり環境変数に設定しても盗まれないのでは、、、
【2】&
* プロセスをバックグラウンドで実行
コマンド例
$ sleep 50 & [1] 15924 << プロセスIDが表示
【3】fgコマンド
* プロセスをフォアグラウンドに戻す cf. fg = ForeGround
コマンド例
$ fg sleep 50 << バックグラウンド実行したコマンドが戻ってきた
参考文献
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