【问题标题】:Ubuntu: When upstart service is run with user root, it returns Unknown jobUbuntu:当使用 root 用户运行 upstart 服务时,它返回 Unknown job
【发布时间】:2015-06-01 08:31:08
【问题描述】:

从下面的输出中可以看到(不限于mysql,其他服务给出类似的结果),当使用sudo运行service/status时,它给出了正确的结果,但是当直接用root运行时给出'Unknown job'。

我用谷歌搜索了很多,但是像“状态/服务”这样的关键词有多重含义,所以我没有发现任何与这个问题相关的问题,只有一些类似的问题回答了为什么在使用“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的限制,但手册页中没有关于root或@987654326的内容@。

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

操作系统:Ubuntu 14.04 LTS

【问题讨论】:

    标签: ubuntu service sudo upstart init.d


    【解决方案1】:

    如果您使用 upstart v1.4+,请尝试 setuid 和 setgid。更多细节在这里:http://upstart.ubuntu.com/cookbook/#run-a-job-as-a-different-userhttp://upstart.ubuntu.com/cookbook/#setuid

    【讨论】:

      【解决方案2】:

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

      有关详细信息,请参阅Running initctl as root broken 错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-02-15
        • 1970-01-01
        • 2011-02-08
        • 2020-07-03
        • 1970-01-01
        • 2013-01-19
        • 2018-04-04
        相关资源
        最近更新 更多