システムによって実行されるスクリプトから stdout を読み取るにはどうすればよいでしょうか?

システムによって実行されるスクリプトから stdout を読み取るにはどうすればよいでしょうか?

に配置したスクリプトをデバッグしたいです/etc/pm/sleep.d。スクリプト内で、echoステータスを報告するコマンドを発行します。

この出力はどこで読むことができますか?dmesgまたは、おそらく次のようなファイルでしょうか/var/log?

これはより良い方法でしょうか? システムによって実行されるはずの bash スクリプト (/etc/init.d/または内のスクリプトなどXinit) をデバッグする場合の標準的な方法は何ですか?

答え1

を使用する代わりに、デバッグの目的でコマンドをシステム ログに出力するために をecho使用できることがわかりました。logger

logger "Oh no"

その後、/var/log/syslogで出力を確認できます。

sudo tail /var/log/syslog

答え2

すでに述べたように、スクリプトには echo ステートメントがあります。

次に、スクリプトを編集し、シェバンの後のファイルの先頭に次のように記述します。

> /tmp/myoutput

myoutput は /tmp マウント内の単なるファイル名なので、好きなものを選択できます。

この後、スクリプト内のechoステートメントがあるところはどこでも、

echo "something"

に変更する

echo "something" >> /tmp/myoutput

これで完了です。スクリプトが実行されるたびに、スクリプトで何が起こったかの最新の記録が残ります。

関連情報