コマンドプロンプトでスクリプトが起動すると、シェルはそのスクリプトのサブプロセスを生成します。ps
端末レベルのプロセスとそのサブプロセスとの関係を表示するためにツリー出力を使用したいと思います。
どうすればいいですか?
今まで試したこと
文書:script.sh
#!/bin/bash
ps -f -p$1
その後、コマンドラインからスクリプトを呼び出してターミナルシェルのプロセスIDを渡しました。
$ ./script.sh $$
私が望むのはこれです
- トップレベル(ターミナル)シェルプロセス
- ./script.sh
ps
コマンド自体のプロセス
USER PID [..]
ubuntu 123 -bash
ubuntu 1234 \_ bash ./script.sh
ubuntu 12345 \_ ps auxf
私が得るものは次のとおりです。
PID TTY STAT TIME COMMAND
14492 pts/24 Ss 0:00 -bash
ベストアンサー1
試行--forest
(または-H
)フラグ
# ps -ef --forest
root 114032 1170 0 Apr05 ? 00:00:00 \_ sshd: root@pts/4
root 114039 114032 0 Apr05 pts/4 00:00:00 | \_ -bash
root 56225 114039 0 13:47 pts/4 00:00:16 | \_ top
root 114034 1170 0 Apr05 ? 00:00:00 \_ sshd: root@notty
root 114036 114034 0 Apr05 ? 00:00:00 | \_ /usr/libexec/openssh/sftp-server
root 103102 1170 0 Apr06 ? 00:00:03 \_ sshd: root@pts/0
root 103155 103102 0 Apr06 pts/0 00:00:00 | \_ -bash
root 106798 103155 0 Apr06 pts/0 00:00:00 | \_ su - postgres
postgres 106799 106798 0 Apr06 pts/0 00:00:00 | \_ -bash
postgres 60959 106799 0 14:39 pts/0 00:00:00 | \_ ps -aef --forest
postgres 60960 106799 0 14:39 pts/0 00:00:00 | \_ more