ターミナルでプログラムを実行し、stdoutとstderrをsystemdログにリダイレクトする方法は?

ターミナルでプログラムを実行し、stdoutとstderrをsystemdログにリダイレクトする方法は?

GNOMEのAlt + F2など、端末でコマンドを実行してstdoutとstderrをsystemdのログにリダイレクトする簡単な方法はありますか?

私はgmrun(出力をリダイレクトしません)、gtk-launch(/usr/share/applicationsの.desktopファイルでのみ動作します)を試しました。

これを実行するGNOMEまたはsystemdコマンドはありますか?

ベストアンサー1

私はあなたがこのlogger(1)ユーティリティを使うべきだと思います。systemdシステムが使用しているか使用していなくても機能しますrsyslogd

your_prog 2>&1 | logger -t your_prog

systemdを持つシステムには、標準APIの代わりにsystemdを特別に使用するsystemd-cat「ストリーミング」ロギングAPI(sd_journal_stream_fd(3)、、)もあります。/run/systemd/journal/stdoutsyslog(3)

your_prog 2>&1 | systemd-cat -t your_prog

systemd-cat -t your_prog your_prog

別の検索を保存するには:stdoutの代わりにstderrをパイプするには、次のようにします。

log_stderr(){ { "$@" 2>&1 >&3 3>&- | logger -t "$1"; } 3>&1; }
log_stderr your_prog

おすすめ記事