
Я пытаюсь автоматизировать подключение VPN-туннеля через cron при загрузке системы.
У меня есть bash-скрипт, запускаемый root-кроном sudo crontab -e
(потому что некоторые другие команды требуют повышения прав).
Я бы справился с использованием piactl (cli), но при попытке подключения я получаю сообщение о том, что клиент необходимо запустить, поэтому...
Один из шагов, который я хотел бы выполнить, — это запустить приложение с графическим интерфейсом (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 к этому вопросу