[英]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
,没有发现任何东西(输出太长),并且我认为这是对status
和service
的限制,但是在手册页中没有关于root
或sudo
。
问题:为什么在没有sudo
情况下运行服务时服务会给未知工作?
操作系统:Ubuntu 14.04 LTS
如果您使用新贵v1.4 +,请尝试使用setuid和setgid。 此处有更多详细信息: http : //upstart.ubuntu.com/cookbook/#run-a-job-as-a-a-different-user和http://upstart.ubuntu.com/cookbook/#setuid
这可能是因为initctl(是新贵的一部分,有时在后台被称为)正在查看用户会话,而不是系统会话中的仅系统服务脚本。 尝试使用sudo -s
或su -
成为root用户,然后运行的service
的命令,因为这将导致UPSTART_SESSION
被删除变量...
有关详细信息,请参见将initctl作为root破坏程序运行 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.