Bash
在其他使用者上啟動 GUI 應用程序通過根 cron 顯示
我正在嘗試在系統啟動時通過 cron 自動連接 VPN 隧道。
我有一個由根 cron 觸發的 bash 腳本
sudo crontab -e
(因為其他一些命令需要提升)。我可以使用 piactl (cli),但是在嘗試連接時,我收到一條消息說客戶端需要啟動,所以……
我想要執行的步驟之一是啟動一個 GUI 應用程序(pia -client) 在我的非 root 使用者顯示上。
以下命令直接從終端執行:
sudo su runuser -l $username -c 'DISPLAY=:0 /opt/piavpn/bin/pia-client &> /dev/null &'
但是,當我把它放到我的腳本中時,它不起作用。
該腳本是可執行
chmod +x /path/to/script.sh
的,並且同一腳本中的其他命令正在執行。有人在這裡有解決方案嗎?
這很尷尬,因為我幾天前已經問過這個確切的問題了。甚至沒有意識到…
解決方案是添加命令的完整路徑,因為該命令不在 cron 的
PATH
.將程式碼更改為:
sudo su /sbin/runuser -l $username -c 'DISPLAY=:0 /opt/piavpn/bin/pia-client &> /dev/null &'
來源/信用:@steeldriver 對此問題的評論