Ubuntu:当upstart服务使用root用户运行时,它返回未知作业

Ubuntu:当upstart服务使用root用户运行时,它返回未知作业,ubuntu,service,sudo,upstart,init.d,Ubuntu,Service,Sudo,Upstart,Init.d,正如您从以下输出(不限于mysql,其他服务会给出类似的结果)中所看到的,当使用sudo运行service/status时,它会给出正确的结果,但当直接使用root运行时,会给出“未知作业” 我在谷歌上搜索了很多,但是像“状态/服务”这样的关键词有多重含义,所以我没有发现与这个问题相关的东西,只有一些类似的问题回答了为什么在运行“sudo服务”时会出现“未知工作”的问题 root@ubuntu-user:/etc/init# status mysql status: Unknown job: m

正如您从以下输出(不限于mysql,其他服务会给出类似的结果)中所看到的,当使用sudo运行service/status时,它会给出正确的结果,但当直接使用root运行时,会给出“未知作业”

我在谷歌上搜索了很多,但是像“状态/服务”这样的关键词有多重含义,所以我没有发现与这个问题相关的东西,只有一些类似的问题回答了为什么在运行“sudo服务”时会出现“未知工作”的问题

root@ubuntu-user:/etc/init# status mysql
status: Unknown job: mysql

root@ubuntu-user:/etc/init# sudo status mysql
mysql stop/waiting

root@ubuntu-user:/etc/init# service mysql status
status: Unknown job: mysql

root@ubuntu-user:/etc/init# sudo service mysql status
mysql stop/waiting
我已经检查了
strace
,没有发现任何东西(输出太长),我认为这是
状态
服务
的限制,但手册页中没有关于
sudo
的内容

问题:在运行服务时没有
sudo
,为什么服务会给出未知作业


操作系统:Ubuntu 14.04 LTS

如果您使用upstart v1.4+,请尝试setuid和setgid。这里有更多详细信息:这可能是因为initctl(upstart的一部分,有时在后台被称为initctl)正在查看用户会话,而不是系统会话,以查找仅用于系统的服务脚本。尝试使用
sudo-s
su-
成为root用户,然后运行
service
命令,因为这将导致
UPSTART\u会话
变量被删除

有关详细信息,请参阅bug