запуск графического приложения на дисплее другого пользователя через root cron

запуск графического приложения на дисплее другого пользователя через root cron

Я пытаюсь автоматизировать подключение 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 к этому вопросу

Связанный контент