루트 cron을 통해 다른 사용자 디스플레이에서 GUI 애플리케이션 실행

루트 cron을 통해 다른 사용자 디스플레이에서 GUI 애플리케이션 실행

시스템 시작 시 cron을 통해 VPN 터널을 자동으로 연결하려고 합니다.
루트 cron에 의해 트리거되는 bash 스크립트가 있습니다 sudo crontab -e(일부 다른 명령에는 권한 상승이 필요하기 때문입니다).

piactl(cli)을 사용할 수 있지만 연결을 시도할 때 클라이언트를 시작해야 한다는 메시지가 표시됩니다. 따라서...
제가 수행하고 싶은 단계 중 하나는 내 컴퓨터에서 GUI 애플리케이션(pia -client)을 시작하는 것입니다. 루트가 아닌 사용자의 디스플레이에.

터미널에서 직접 다음 명령을 실행하십시오.

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의 의견

관련 정보