FreeBSD / macOSで実行されているプロセスの標準入力/出力キャプチャ

FreeBSD / macOSで実行されているプロセスの標準入力/出力キャプチャ

Linuxでは、実行中のプロセスに/proc/<pid>/fd/[0,1,2]アクセスするためにこれを頻繁に使用します。std[in,out,err]

FreeBSDおよび/またはmacOSで同じ結果を得る方法はありますか?

ベストアンサー1

バラよりこのStackOverflowリンクこれに対するdtraceベースの答えです。 FreeBSDでこれをテストしましたが、うまくいきます。

    capture() {
        sudo dtrace -p "$1" -qn '
            syscall::write*:entry
            /pid == $target && arg0 == 1/ {
                printf("%s", copyinstr(arg1, arg2));
            }   
        '   
    }   

おすすめ記事