Systemd
如果從 systemd 服務呼叫 /usr/bin/xinit 似乎會忽略 .xinitrc
這是在 Xubuntu 18.04 上。
我正在嘗試用我自己的在啟動時全屏執行的應用程序替換 lightdm。
我可以
xinit
從 root shell 執行,它正確地接受我的 /root/.xinitrc 命令並全屏執行我的程序。which xinit #gives "/usr/bin/xinit"
我嘗試使用以下命令製作 /lib/systemd/system/fullscreen.service:
[Unit] Description=Fullscreen App #Conflicts=getty@tty7.service plymouth-quit.service #After=systemd-user-sessions.service getty@tty7.service plymouth-quit.service [Service] ExecStart=/usr/bin/xinit
但是當我跑步時
systemctl daemon-reload systemctl start fullscreen
它只是載入登錄到 root 的 xterm 終端。
任何想法為什麼兩者之間有任何區別?以及如何讓它像
xinit
直接執行一樣?
對於作為系統範圍服務啟動的程序,
$HOME
環境變數將被取消設置,除非您專門設置它。並且xinit
很可能會使用它來查找$HOME/.xinitrc
- 即/root/.xinitrc
,如果您從根 shell 執行命令。添加環境變數的一種簡單方法是添加以下行:
Environment="HOME=/root"
到
[Service]
您的服務文件的部分。