• ベストアンサー

ps aux コマンドのオプションx

psコマンドでよく使用されるauxオプションについてです。 xは制御端末のないプロセスと説明されますが、この制御端末が無い、という意味がよく理解できません。 どういう意味で言っているのでしょうか。また同じくオプションで使用されているaとはどのような関係にあるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

まずaは簡単ですよね。実行しているユーザ以外のプロセスも表示(all users)ということです。 制御端末の概念は難しいです。現象的にいうと、プロセスを Ctrl-C で止めたり、Ctrl-Z でサスペンドしたり、あるいはサスペンドしたプロセスをfgやbgで再開したり出来ますが、そのような操作をすることができる端末のことをプロセスの制御端末と言います。 ちゃんとした理解のためには、Unix/Linuxのプロセス管理の仕組み、プロセスグループ、プロセスグループリーダーとか、セッション、セッションリーダーなどについて理解する必要があります。 制御端末は、ps x でTTY欄に表示されます。ここが ? になっているのが「制御端末を持たないプロセス」です。TTY欄が今使っている端末であれば、バックグラウンドで動いているプロセスであってもfgコマンドでフォアグラウンドに持ってこられます。 西予端末を持たないプロセスの例としては、いわゆるデーモンプロセスです。 端末から起動したプロセスは原則として制御端末を持つプロセスです。 制御端末を持つpsコマンドの実行の場合(コマンドラインでpsとキーインするなど)、x を付けないと、「制御端末を持たないプロセス」を表示しないだけでなく「制御端末を持っていても現在の制御端末と異なるプロセス」も表示しません。

Libertarian2011
質問者

お礼

概ね理解できたと思います。 例としては、ターミナルを起動してそこから動かしたプロセスと、デーモンプロセスがあるのだと考えることにします。おそらく他にも例外があるのでしょうが、実利用上はこの理解で役に立ちそうです。 どうもありがとうございました。

関連するQ&A