[英]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.