我的主目录中的所有这些 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
大多数都是最新的。如果我尝试删除它们,它们最终会回来(尽管带有新的 ID 等)。
ps
例如显示以下内容:
4 S mark 4885 5319 0 80 0 - 27317 poll_s Nov21 ? 00:00:00 /sbin/upstart --user
同一系统上的其他用户也发生了同样的事情。
/run
根据 Jos 的评论, /的设置/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/
这肯定不是设计使然,还是说一定有更好的地方保存这些文件?照原样,它们不是隐藏文件,也不在隐藏目录中。这很混乱,导致我需要查看的东西列表更长,而本来应该非常干净和有条理~
。
我认为这是在我最后一次升级(包括 systemd)之后发生的。这是典型的情况吗?还是可能有其他因素影响了这个问题,我需要进一步调查?(我在这个系统上有点懒,过去几个版本都没有执行过全新安装 - 也许是时候进行全新安装?)
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=15.10
DISTRIB_CODENAME=wily
DISTRIB_DESCRIPTION="Ubuntu 15.10"
(这似乎是通过简单搜索就能解决的问题,但我的 Google 能力似乎无法解决这个担忧。)
答案1
这些文件的存在是因为系统中的几个组件符合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
从下次重新启动开始,.PID 文件将不再扰乱您的主目录。