Shell

Linux:如何將標準輸出和標準錯誤重定向到記錄器?

  • June 8, 2020

我有一個需要在啟動時執行的程序,它在 stdout 和 stderr 上有輸出,我想使用 logger 命令重定向到系統日誌。我的啟動腳本中的內容是:

/home/dirname/application_name -v|記錄器 2>&1 &

這很好地將標準輸出重定向到系統日誌,但標準錯誤即將進入控制台,所以我需要改進命令。

您需要在將 STDERR 和 STDOUT 的輸出連接到logger. 試試這個:

/home/dirname/application_name -v 2>&1 | logger &

例子

$ echo "hi" 2>&1 | logger &
[1] 26818
[1]+  Done                    echo "hi" 2>&1 | logger

$ sudo tail /var/log/messages
Apr 12 17:53:57 greeneggs saml: hi

如果在實際的 Bash shell 中謹慎使用,您也可以在此處使用縮寫符號(不要與 Dash 混淆):

$ echo "hi" |& logger &

**注意:**這相當於<cmd1> 2>&1 | <cmd2>. 再次僅在互動使用實際的 Bash shell 時使用上述方法,這將是一種很好的方法。

摘自ABSG

|& 被添加到 Bash 4 作為 2>&1 | 的縮寫。

參考

引用自:https://unix.stackexchange.com/questions/124455