[英]Spawn GUI from service
我有一個以root身份運行在通過systemd啟動的linux系統中的服務。 此服務有時可能會在用戶當前的登錄環境中生成GUI(我通過DBUS從Logined獲得了Display和Xauth的值)。 gui的啟動工作正常,但是環境混亂了。
目前,gui是通過fork
和execvp
啟動的。 在調用execvp
之前,使用setuid
和setgid
放棄特權。
用正確的環境變量啟動過程的合適方法是什么? 當前,當嘗試從應用程序中使用例如policykit
,出現錯誤,無法找到當前的/dev/tty
,依此類推。
是否適合使用su -l
? 還是有其他方法可以以其他用戶身份啟動流程?
su
允許您指定運行用戶,例如:
su nonrootuser -c "/usr/bin/mygui"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.