Bash

在其他使用者上啟動 GUI 應用程序通過根 cron 顯示

  • April 24, 2020

我正在嘗試在系統啟動時通過 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 對此問題的評論

引用自:https://unix.stackexchange.com/questions/580442