在 /etc/environment 中设置 LOG=1

在 /etc/environment 中设置 LOG=1

我问了一个问题notify-osd之前曾讨论过查看应用程序使用历史记录的问题indicator-notifications

答案是我需要添加到我的文件LOG=1中。 这听起来很可疑,我没有这样做,因为:/etc/environment

  1. 它在全局配置文件中。
  2. 您确实无法知道除了通知之外还会记录什么。

我浏览了一下,看到了这个问题这也凸显了这个问题。具体来看这个答案

小警告:这可能是一个坏主意... /etc/environment 中的 LOG=1 使其成为系统范围的变量,可能会破坏一些东西... 天知道 LOG 上有什么反应(当然他们应该把它做成类似 NOTIFYOSDLOG 的东西)。也许首先我会将它添加到 1 个用户的 bashrc 中以确保万无一失。

我的问题是,设置会对系统产生什么LOG=1影响/etc/environment?哪些“内容”会被记录?这样做可取吗?

编辑

我解决了通知问题现在我只想询问在 /etc/environment 中设置 LOG=1 的效果。

看看我上面的问题:“设置会对系统产生什么LOG=1影响/etc/environment?哪些‘内容’会被记录?这样做可取吗?”

答案1

您可以使用更贴近用户本地的方法,例如~/.pam_environment~/.profile。这些方法实际上与 相同,/etc/environment只是它们只会影响您的用户。它们仍然会影响其他应用程序。

虽然~/.profile与其他脚本文件类似,但~/.pam_environment有点抽搐语法需要遵守(否则您将无法登录):

LOG DEFAULT=1

另一种方法是可能工作是改变启动的任何程序notify-osd以直接传递环境变量。在这种情况下,它似乎是由以下程序控制的跨平台 DBUS 级联的一部分:usr/share/dbus-1/services/org.freedesktop.Notifications.service

[D-BUS Service]
Name=org.freedesktop.Notifications
Exec=/usr/lib/x86_64-linux-gnu/notify-osd

我想知道 Exec 行是否可以改为:

Exec=LOG=1 /usr/lib/x86_64-linux-gnu/notify-osd

或者如果这引发语法问题:

Exec=sh -c "LOG=1 /usr/lib/x86_64-linux-gnu/notify-osd"

如果有效的话,它具有明显的优势,即只影响notify-osd(它启动的任何东西)。

答案2

通知OSDdoc 页面引用:

(注意:当 LOG 环境变量设置为 1 时,才会启用此文件的日志记录。)

在里面环境变量文档页面,它有一个常见变量列表,其中没有列出“LOG”。它说:

每个应用程序都可以自由定义和使用自己的环境变量。许多手册页都包含一长串环境变量,这些变量可能会影响它们所描述的应用程序的行为。但是,最有用的变量对许多应用程序来说都是通用的。

在谷歌搜索可以使用 LOG 的实例后,什么也没找到。“NOTIFYOSDLOG”应该是更合适的名称。LOG 的使用完全取决于应用程序,因此谁使用它和谁不使用它是一个谜。由于它不在通用变量列表中,它可能只是一个命名不当的变量。

相关内容