編集:特定のユースケース:すべてのサブアイテムをインポートする

編集:特定のユースケース:すべてのサブアイテムをインポートする

pstree多くのコードやひどい構文解析なしで機械が読み取ることができる機械出力の出力を得るための良い方法はありますか?

私は本当にすべてのサブプロセスのリストが欲しい。

編集:特定のユースケース:すべてのサブアイテムをインポートする

> useful_pstree $PID

1010
1012
10101
1013

より一般的なユースケースでは、美しいJSONを得ることができます。

# json_pstree $PID

 { 'pid': 1010,
       children: { ...

しかし...私は、コマンドラインからjson構造への再帰を簡単に実行する良い方法を知りません(à la jq)。

ベストアンサー1

ps以下は、引数として提供されたプロセスから始まり、サブプロセスから出力を繰り返し出力するシェルスクリプトです。スクリプトにはエラーチェックがないため、ps必要な出力に応じていくつかのオプションを追加する必要があります。

#!/bin/sh

printps() {
    if [ $# -gt 0 ]
    then
        ps --no-headers $*
        for p in $*; do
            printps $(cat /proc/$p/task/$p/children)
        done
    fi
}

printps $1

おすすめ記事