我正在尝试在系统启动时通过 cron 自动连接 VPN 隧道。
我有一个由 root 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
,并且同一脚本中的其他命令正在运行。
这里有人有解决方案吗?
答案1
这很尴尬,因为我几天前才问过这个确切的问题。根本就没意识到...
解决方案是添加命令的完整路径,因为该命令不在 cron 的PATH
.
将代码更改为:
sudo su
/sbin/runuser -l $username -c 'DISPLAY=:0 /opt/piavpn/bin/pia-client &> /dev/null &'
来源/信用:@steeldriver对此问题的评论