在 /etc/environment 中设置 LOG=1

Par*_*rto 8 notification log environment

我之前问过一个关于查看应用程序使用历史的问题notify-osdindicator-notifications

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

  1. 它在全局配置文件中。
  2. 除了通知之外,您真的不知道还会记录什么。

我浏览了一下,看到了这个问题,这也突出了这个问题。具体看这个答案

小警告:这可能是个坏主意...... /etc/environment 中的 LOG=1 使它成为一个系统范围的变量并且可能会破坏东西......上帝知道对 LOG 的反应(ofc。他们应该让它像 NOTIFYOSDLOG )。也许对于初学者来说,我会将它添加到 bashrc 以供 1 个用户使用,只是为了确定。

我的问题是,如何将设置LOG=1/etc/environment影响系统?将记录哪些“东西”?这是可取的吗?

编辑

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

看看我上面的问题:“设置LOG=1in将如何/etc/environment影响系统?将记录哪些‘东西’?这是可取的吗?”

Oli*_*Oli 4

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

虽然~/.profile与其他脚本文件类似,但需要遵守~/.pam_environment一些棘手的语法(否则您将破坏登录):

LOG DEFAULT=1
Run Code Online (Sandbox Code Playgroud)

另一种可能有效的方法是更改​​启动项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
Run Code Online (Sandbox Code Playgroud)

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

Exec=LOG=1 /usr/lib/x86_64-linux-gnu/notify-osd
Run Code Online (Sandbox Code Playgroud)

或者如果这会引发语法不稳定:

Exec=sh -c "LOG=1 /usr/lib/x86_64-linux-gnu/notify-osd"
Run Code Online (Sandbox Code Playgroud)

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