Answers:
您需要先组合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
#|&作为2>&1 |的缩写被添加到Bash 4中。
dash
尝试在启动时执行该脚本,也只会使启动过程失败并破坏启动过程……好吧……当提到这种语法时,总是在的背景下互动炮弹只,或者,至少,这就是我的意见。
2>&1
但是鉴于示例涉及初创企业,您的警告是非常明智的。我将使后面的这些提示更加突出,并警告它们仅用于交互式Bash shell。
dash
-确实非常快。
>&
:tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html