繁体   English   中英

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

[英]Ubuntu: When upstart service is run with user root, it returns Unknown job

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

我在Google上搜索了很多,但是诸如“状态/服务”之类的关键字具有多种含义,因此我发现与该问题无关,只有一些类似的问题可以回答为什么在使用“ 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 ,没有发现任何东西(输出太长),并且我认为这是对statusservice的限制,但是在手册页中没有关于rootsudo

问题:为什么在没有sudo情况下运行服务时服务会给未知工作?

操作系统:Ubuntu 14.04 LTS

如果您使用新贵v1.4 +,请尝试使用setuid和setgid。 此处有更多详细信息: http : //upstart.ubuntu.com/cookbook/#run-a-job-as-a-a-different-userhttp://upstart.ubuntu.com/cookbook/#setuid

这可能是因为initctl(是新贵的一部分,有时在后台被称为)正在查看用户会话,而不是系统会话中的仅系统服务脚本。 尝试使用sudo -ssu -成为root用户,然后运行的service的命令,因为这将导致UPSTART_SESSION被删除变量...

有关详细信息,请参见将initctl作为root破坏程序运行

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM