应用程序启动失败的错误消息在哪里?

应用程序启动失败的错误消息在哪里?

我为所有用户创建了一个简单的桌面条目/usr/share/applications/pycharm-foo.desktop

[Desktop Entry]
Name=PyCharm foo
Icon=/usr/share/pixmaps/python2.7.xpm
Exec=pycharm-wrapper foo
Terminal=false
Type=Application
Categories=Application

该应用程序可通过 Windows 键(启动器/破折号)找到。

但是如果应用程序失败并在 stdout/stderr 上显示消息,那么我希望查看该消息。

在哪里可以找到应用程序启动失败的错误消息?

答案1

这个问题可能与以下内容重复:

有两个答案:

  • 检查日志内容~/.xsession-errors
  • 调用命令时重定向输出:command >~/log/command.out.log 2>~/log/command.err.log

此外,如果知道进程 ID,请查看其1stdout 和2stderr 的文件描述符。Unix 和 Linux 对此有详细描述:

简单总结一下得票最高的答案:

lsof -p1234 | awk '$4 ~ /^[12][^0-9]/'
ls -l /proc/1234/fd/[12]

当然,最常见的方法是简单地从命令行调用 GUI,然后终端窗口将显示警告和错误消息:

$ zenity --info --text "Hello World"
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.

答案2

出色地,

写入日志的唯一文件夹通常是 /var/log。就您而言,您要查找的信息可能位于不同位置,因为开发人员可以选择不同的位置,或者可能决定将日志写入他/她自己的位置。

它可能在 /var/log/syslog 中 - syslog 中包含所有来自系统本身的日志,但也包含被编程为直接写入 syslog 的程序。

然后应该有类似 /var/log/gdm3 的内容 - 这是 gnome 窗口管理器的日志文件。因此,如果 gnome 识别出 smtg。或者本身出现问题,它会将其记录在那里。

您是否考虑过将其写入您自己的文件夹?您可以简单地将日志文件附加到您的命令中,然后数据就会写入其中(根据您的设置方式)。

这是我今天第二次链接到这里,哈哈。看这里,因为你正在使用一个 Python 应用程序(看起来像),这个链接应该对你有用,我的朋友。试一试。

尝试像这样启动你的python包装器pycharm-wrapper foo &>> /home/$(whoami)/mylogfile.log

下次开始之前,请务必跟踪这一点。打开控制台并输入tail -f /home/($whoami)/mylogfile.log。然后启动 Python 包装器并查看控制台,看看是否显示错误。

如何将终端输出保存到文件?

答案3

我找不到任何相关文档,而且正如前面所述,根据程序开发人员所做的日志记录选择,您将获得不一致的结果。也许他们将错误发送到 stderr,也许发送到 stdout,也许在发生错误时返回非零值,也许不返回。也许您会得到一页页堆栈跟踪无用信息,而这些页面无法在对话框中显示。

我使用 bash 脚本包装器取得了一些成功,它运行您传递给它的命令行并将所有输出发送到通知:

notify-send "$($* 2>&1)"

但我预计结果会不一致。

答案4

老实说,我会做的就是使用以下内容:

sudo su root

updatedb

cd /var/log

grep pycharm * > results.txt

cat results.txt

这应该告诉您在日志中提到了 pycharm 的文件,然后您甚至可以使用以下命令进一步过滤:

cat results.txt | grep *error*

也许可以使用失败或死亡而不是错误来尝试缩小结果范围。

相关内容