如何查看启动应用程序的标准输出/标准错误?

Ada*_*ick 12 log startup-applications stdout

我在启动应用程序中的某些命令在我登录时无法正常启动。(特别是我在使用 gtk-redshift 时遇到了问题。)为了调试,我希望能够查看 stdout/stderr。我还没有找到启动应用程序的日志文件。我尝试使用“>> log.txt”重定向到一个文件,但没有成功。

如何查看启动应用程序的 stdout/stderr?更好的是,是否有启动应用程序的日志文件?

小智 7

我认为最好的做法是将 bash 命令进一步放在启动中,或者将其放在 bash 脚本中并在启动应用程序中选择它。我添加了该-v选项,以便应用程序以最详细的方式记录其所有操作;某些应用程序具有其他详细设置,甚至您可以指定各种级别。

&>使用重定向是一样的2>&1,因为它会将所有程序的输出(中stderr, stdout)到指定的文件,即&>/home/mike/redshift.log

这是可用于设置日志记录的命令,如果适当修改,它还可用于其他程序。

bash -c "setsid /usr/bin/gtk-redshift -v -l 40.77:-73.9 -t 6500:5500 &>/home/mike/redshift.log"
Run Code Online (Sandbox Code Playgroud)

这些只是示例测试设置,请用您自己的值替换这些值;由于上述命令行很长,您可能希望将命令放在启动条目的 bash 包装器中进行适当修改。

/home/mike/redshift.log以下位置创建的日志摘录:

Gamma ramp size too small: 0
Failed to start adjustment method randr.
Trying next method...
Location: 40.770000, -73.900002
Brightness: 1.00
Gamma: 1.000, 1.000, 1.000
Using method `vidmode'.
Run Code Online (Sandbox Code Playgroud)

日志会继续并应该为您提供所需的信息。某些程序(例如)vlc确实具有您可以设置的选项,因此它们的日志记录可以发送到 syslog,但我更喜欢每个程序都有自己单独的日志。