zie*_*mer 7 upstart files home-directory 15.10
所有这些 PID 文件在我的主目录中做什么?
$ ls -1 ~/upstart-*
/home/mark/upstart-dbus-bridge.4885.pid
/home/mark/upstart-file-bridge.4885.pid
/home/mark/upstart-udev-bridge.10317.pid
/home/mark/upstart-udev-bridge.4885.pid
/home/mark/upstart-udev-bridge.6044.pid
/home/mark/upstart-udev-bridge.6406.pid
/home/mark/upstart-udev-bridge.6650.pid
Run Code Online (Sandbox Code Playgroud)
大多数是当前的。如果我尝试删除它们,它们(最终)会回来(尽管带有新 ID 等)。
ps 显示以下内容,例如:
4 S mark 4885 5319 0 80 0 - 27317 poll_s Nov21 ? 00:00:00 /sbin/upstart --user
Run Code Online (Sandbox Code Playgroud)
同一系统上的其他用户也会发生同样的情况。
根据乔斯的评论,/run/的设置/var/run似乎是正确的:
$ mount|grep run
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=1633648k,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
$ ll /var/run
lrwxrwxrwx 1 root root 4 Oct 28 2013 /var/run -> /run/
Run Code Online (Sandbox Code Playgroud)
这肯定不是设计使然,还是必须有更好的地方来保存这些?按原样,它们不是隐藏文件,也不在隐藏目录中。这很混乱,并导致我需要查看的事情列表更长,否则应该是一个非常干净和有组织的~.
我认为这是在我最后一次升级(包括 systemd)之后开始的。这是典型的,还是我在这里可能有其他影响我需要进一步调查的东西?(我在这个系统上有点懒惰,并且在过去的几个版本中没有执行干净安装 - 也许是时候进行干净安装了?)
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=15.10
DISTRIB_CODENAME=wily
DISTRIB_DESCRIPTION="Ubuntu 15.10"
Run Code Online (Sandbox Code Playgroud)
(这似乎应该通过简单的搜索来解决,但我的 Google-fu 似乎没有让我担心这个问题。)
这些文件之所以存在,是因为系统中的多个组件符合XDG 基本目录规范XDG_RUNTIME_DIR并期望设置环境变量。如果未设置,则使用用户的主目录。
pam-systemd是将 XDG_RUNTIME_DIR 设置为 的组件/run/user/$UID,其中 $UID 是用户的有效用户 ID。就你而言,pam-systemd是没有跑步还是有其他不当行为,这很难说。但是您可以在启动时轻松地自己设置 XDG_RUNTIME_DIR,如下所示:sudo nano /etc/profile并添加以下行:
XDG_RUNTIME_DIR=/run/user/$UID
export XDG_RUNTIME_DIR
Run Code Online (Sandbox Code Playgroud)
从下次重新启动开始,.PID 文件将不再混乱您的主目录。