当 GUI 程序出现某种故障(崩溃等)时,我经常使用从命令行(而不是从菜单)运行它的技巧。这样我就可以看到它输出的消息stdout
,stderr
有时这可以给我一些关于哪里出错的线索(或者至少是一条我可以通过 Google 搜索到的消息,让我进一步找到“解决方案”)。
有什么方法可以让所有 GUI 程序保存stdout
在stderr
某个地方,这样我就可以诊断问题而不必从命令行启动它们?这不仅更方便,而且还可以帮助那些不知道这个技巧的用户。
答案1
你的意思是像现有的~/.xsession-errors
日志?
不幸的是,它往往充斥着大量警告和其他无用的消息。
答案2
alacarte
对于特定的菜单命令,您可以更改启动应用程序的命令,例如侏儒,变成类似于:
command >~/log/command.out.log 2>~/log/command.err.log
其中~/log
是之前创建的目录,command
应该用真实的命令名替换。
如果这不起作用,请将命令嵌入到 shell 调用中:
sh -c 'command >~/log/command.out.log 2>~/log/command.err.log'
不幸的是,我担心没有通用的解决方案。