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

Linuxを勉強したい人向け シェル/bash

こんにちは。

普段はIT業界についてのブログを執筆してるエンジニアです。
» 参考:プログラマーの年収は200万円以下です【IT業界の残酷な成功法則】

今回は、linuxについての解説記事です。

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の実行例を示します。

$ ps -ef
USER  UID   PID  PPID   C STIME   TTY           TIME CMD
root    0     1     0   0 水12PM ??         6:38.17 /sbin/launchd
root    0    41     1   0 水12PM ??         0:35.90 /usr/sbin/syslogd
root    0    46     1   0 水12PM ??         0:10.65 /usr/libexec/kextd
root   55    52     1   0 水12PM ??         0:00.73 /System/Library/CoreServices/appleeventsd --server
root    0    53     1   0 水12PM ??         3:10.37 /usr/sbin/systemstats --daemon
user1   0    66     1   0 水12PM ??         9:14.21 /bin/sleep 3600  

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

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

5. 業務利用時の注意点

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

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

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

おわりに

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

Blog TOP  Linuxコマンドを勉強したい人向け|Linuxの使い方 記事まとめ

Linux&Linuxコマンドを勉強したい人向けの記事もくじ

用語解説・技術一般

  "UNIXとLINUX"の違いについて解説します
  CUIとGUIの違い・特徴について解説します

サーバリソースを確認するコマンドの使い方

  【Linux】CPU使用率を確認する3つの方法を解説します
  【Linux】topコマンドで,CPU消費の原因を特定する方法
  【Linux】ps実行時に-efオプションを付ける理由について
  【Linux】メモリ使用率を確認する|容量・空きの確認も
  【Linux】ディスク容量を確認する|ディスク容量監視も

ファイル操作に関するコマンドの使い方

  【Linux】ファイルの行数をカウントする方法を解説
  【Linux】文字コード変換ならiconvコマンド1択です
  【Linux】/dev/nullを、エンジニアが使う2つの目的
  【Linux】findのexecオプションの使い方とその注意点
  【Linux】findの結果から圧縮ファイルを作るコマンド
  【Linux】hostsの場所はどこ?→/etc/hostsにあります
  【Linux】touchコマンドで,時刻更新&空ファイル作成

Linux管理者用コマンドの使い方

  【Linux】再起動コマンド(shutdown)の使い方と注意点

よく使う便利なコマンドの使い方

  【Linux】改行なしでechoコマンドを使う時の -nオプション
  【Linux】sleepコマンドの使用例と注意点について解説する
  【Linux】rmコマンドでディレクトリを削除する方法を解説
  【Linux】ファイルを削除するコマンド2選【rm以外もあり】
  【Linux】awkの区切り文字を指定する,-Fオプションを解説
  【Linux】sedで文字列の置換をするeオプションを解説する
  【Linux】dateコマンドのフォーマットとその便利な使い方
  【Linux】大文字から小文字に変換する方法【小文字から大文字も】

シェルの便利機能

  【Linux】コマンド履歴を検索する【Ctrl+r】