如果我打开本地终端并尝试启动 upstart 服务,我会收到以下错误:
service rsync status
status: Unknown job: rsync
但如果我以同一个用户身份通过 SSH 登录,一切正常:
service rsync status
rsync start/running, process 965
有人能解释一下为什么本地用户和通过 SSH 登录的用户的行为不同吗?我认为这一定是我的 .bashrc 或类似文件的问题,但我不确定我应该寻找什么。
更多细节:
Ubuntu 14.04 在 OS X 下的 VirtualBox 上运行。
如果我使用 sudo,也会出现同样的症状。
如果我尝试不同的服务,就会出现相同的症状。
重启后会出现相同症状。
‘服务状态’、‘服务启动’和‘服务停止’都出现了相同的症状。
失败似乎在于发现服务,所以我不认为 .conf 语法是问题所在。如果我列出所有服务,我会得到非常不同的结果:
本地终端会话:
initctl list | wc -l
37
SSH 会话(以同一用户身份):
initctl list | wc -l
109
更新
根据 @muru 的建议,我找到了一个修复/破解方法。我将其添加到我的 .bashrc 末尾:
unset UPSTART_SESSION
这感觉有点肮脏,我找不到这个变量到底在哪里设置,但它解决了这个问题。
谢谢你的帮助!