捕获所有 GUI 程序的标准输出和标准错误?

捕获所有 GUI 程序的标准输出和标准错误?

当 GUI 程序出现某种故障(崩溃等)时,我经常使用从命令行(而不是从菜单)运行它的技巧。这样我就可以看到它输出的消息stdoutstderr有时这可以给我一些关于哪里出错的线索(或者至少是一条我可以通过 Google 搜索到的消息,让我进一步找到“解决方案”)。

有什么方法可以让所有 GUI 程序保存stdoutstderr某个地方,这样我就可以诊断问题而不必从命令行启动它们?这不仅更方便,而且还可以帮助那些不知道这个技巧的用户。

答案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'

不幸的是,我担心没有通用的解决方案。

相关内容