2012-04-18 35 views
4

我想在啓動時通過systemd(OS是Fedora Core 16)從一些非root用戶(例如michael)執行我的腳本。來自非root用戶的單元(用於命令啓動/停止/啓用/禁用)

我不需要root權限 - 我只想在啓動時運行,並在關機時運行我的一些單位systemd。我不想爲此打開root用戶。我只想使用單位語法的systemd的功能來啓動和監視我的進程(當然,無需root權限)。可能嗎?

我沒有在文檔中找到任何幫助。我只在systemd(1) -> DIRECTORIES -> "User unit directories"發現:

$ pkg-config systemd --variable=systemduserunitdir 
/usr/lib/systemd/user 

/usr/lib/systemd/user是:

drwxr-XR-X。 2根根

我無法想象我如何使用這個目錄作爲一個非root用戶...

+0

據我瞭解,「systemduserunitdir」目錄有一個用戶會話單元(ssh/X會話?)。如果是的話,它變量不會幫助我:(我想啓動/停止/啓用/禁用systemd中的服務/守護進程沒有用戶會話(在啓動時),但作爲非root用戶。我不想獲得root訪問權限用於安裝我的程序(守護程序),如果它不需要root權限... – Perlover 2012-04-18 09:31:38

+0

您是否嘗試過在superuser.com上詢問此問題,這是一個專注於計算機問題而不是編程問題的相關網站? – inquiryqueue 2012-06-26 18:48:09

回答

3

This Arch Linux document may help.

systemd爲用戶提供了運行systemd的一個實例的能力 管理他們的會話和服務。這允許用戶啓動,停止, 啓用,並且當用戶運行systemd時,禁用在特定目錄內找到的單元。這對於守護程序和其他 服務通常以非root用戶或特殊用戶(例如mpd)運行的服務很方便。

他們建議啓動系統通過xinit的--user實例,但我想你想不管用戶是否登錄,啓動用戶服務。

我通常會做的是通過添加@重啓行到我的crontab。

From Wikipedia:如果有必要啓動一個特定的用戶在服務器或 守護程序,而用戶不必訪問 設置初始化啓動程序

@reboot可能是有用的。

也許你可以啓動systemd --user via @reboot !!!