【Linux】ps実行時に-efオプションを付ける理由

Linux シェル/bash

psコマンドの-efオプションについて調べる人

psコマンドの-efオプションについて調べる人
「psコマンドを実行する時は常に-efオプションを付与すればいいですか?どういうオプションなのか、各オプションの意味を知りたいです。また、他のオプションを指定したり、-efオプションを指定しない方が良いケースもあるのでしょうか?」

こんな悩みを解決します。

この記事を書いている私はIT業界歴12年、うちサーバエンジニア歴6年、年収1,000万円ちょっとの金融系エンジニアです。IRIXやSolarisなどのUnixやmac、Linuxなど様々なUNIX系環境を扱ってきました。

これまでの経験を踏まえ、コマンドの解説に留まらず実務視点で利用方法を記事にしました。お役にたちましたら幸いです。

本記事で扱うのはLinux/Macのpsコマンドです

本記事では、LinuxまたはMac環境を前提にしています。それ以外のUNIX環境では一部の動作が異なることがあります。

本記事の内容

1. psの-eオプションとは

psの-eオプションを使えば、全てのユーザのプロセスの情報を表示します。-eオプションを付けない場合、自ユーザで起動したプロセスの情報しか表示されません。

もしあなたがアプリケーションエンジニアで、今お使いの1つのアプリケーション・ユーザの情報にしか興味がない場合は-eオプションは不要です。

しかし多くの場合、複数のユーザを利用して開発・運用するでしょうから、-eオプションを付与することでユーザを横断したプロセス情報を出力し、その中から必要なプロセス情報を選別していくのが一般的です。

2. psの-fオプションとは

-fオプションを付与することで、情報を省略せず、完全なフォーマットで出力します。

UID(プロセスの実行ユーザ)、PPID(プロセスを実行した親プロセス)、C(プロセスのCPU使用率)、STIME(プロセスの開始時刻)、実行コマンドの引数が表示されるようになります。

結論:ps実行時には-efオプションが必要

psコマンドを実行するなら、-efオプションをつけましょう

psコマンドを実行する場合、以上の情報を取得するために-efオプションを付与します。

自ユーザの情報だけが欲しいケースもあると思いますが、ps -fとせずにps -ef | grep 《自ユーザ名》と記述してしまっても負荷などの観点から見ても影響は軽微で、問題とならないからです。おまじないのように覚えておいても良いと思います。

4. ps -ef実行例

ps -efの実行例を示します。

各項目の意味は以下の通りです。

  項目    説明
  USER    ユーザーのログイン名
  PID    プロセス ID
  PPID    親プロセスの ID
  C    プロセスの CPU 使用状況
  STIME    プロセスの開始時刻
  TTY    プロセスのコントロール・ワークステーション
  TIME    プロセスの実行時間の合計
  CMD    コマンド

5. 業務利用時の注意点

Linuxのpsコマンド実行時には-efオプションを付けましょう

Linux環境で開発・運用しているエンジニアであれば、psコマンド実行時には常にps -efを実行するように習慣化して問題ありません。特定のプロセスや実行中のシェルスクリプト、ミドルウェアなどの情報はこれで採取できるからです。

また、各プロセスのリアルタイム性のある負荷状況などを確認したい場合はtopコマンドを使うと良いです。

おわりに

今回は以上です。psコマンドの-efオプションについて解説しました。実務等で利用する場合の参考になりますと幸いです。