パラメータなしで基本動作をシミュレートしていますps
。
選択基準の1つは、現在のシェルと同じ端末を制御するプロセスを見つけることです。
別の選択条件は、euidが現在のユーザーであるプロセスを見つけることです。
したがって、ユーザー選択と端末選択を論理的にANDする必要があります。
$ ps -u t -t /dev/pts/4 -o pid,tname,time,ucmd
$ ps -u t -t pts/4 -o pid,tname,time,ucmd
$ ps -u t -t /dev/tty -o pid,tname,time,ucmd
私は現在シェルの制御端末があることを知っています/dev/pts/4
。ただし、これらすべては、他の制御端末の有無にかかわらずプロセスを提供します。ありがとうございます。
答え1
プロセスの選択は通過し、累積さ-u
れます。ユーザーとして実行されているすべてのプロセスと最も重要なのは、制御端末またはあるすべてのプロセスを-t
選択することです。特定の制御端末のプロセスを表示するには、以下を単独で使用します。t
/dev/pts/4
/dev/tty
-t
ps -t pts/4 -o pid,tname,time,ucmd
〜のようにPOSIXで指定、プロセス選択オプションが追加されます。
とは別に- F、-エル、-N リストと- モールド 滞在、表示されているすべてのオプションはプロセスを選択するためのものです。何も指定しないと、基本リストは無視されます。メモすべての選択基準オプションのORで表示されるプロセスを選択する必要があります。
条件を結合し、すべての条件に一致するプロセスのみを一覧表示するには、次を使用できますpgrep
。
ps -p $(pgrep -d, -u t -t pts/4) -o pid,tname,time,ucmd