明示的に記録されていないプロセスの実行出力をどのようにチェックできますか?

明示的に記録されていないプロセスの実行出力をどのようにチェックできますか?

私たちのマシンの1つがgeth(イーサリアムブロックチェーンクライアント)を実行しています。

理想的には、プログラムの出力を調べるには、次のものが必要です。

geth --datadir ./myDataDir --networkid 1114 console 2>> myEth.log

しかし、プロセスログをファイルにリダイレクトすることを忘れた場合はどうなりますか?

プログラムの実行中の出力を調べる方法はありますか?

重要なプロジェクトで使用されるプログラムなので、プログラムを停止したり、実行を直接妨げたりすることはできません。

プログラムログを確認する必要があります

助けてください

ベストアンサー1

これは通常不可能です。特に、プログラム(またはlibc)自体は、stdoutが実際にファイルハンドルであるかどうかを検出し、異なる動作をする可能性があります。

プロセスを大幅に中断することなく、プロセスにデバッガを接続し、ロギング呼び出しを傍受することができます。

デーモンが出力するすべてを自動的に記録するsystemdなどのデーモンマネージャでデーモンを起動しないことは少し珍しいことですが、このレベルの専門知識は暗号通貨コミュニティのプロセスと同じです。

おすすめ記事