ルートcronを介して他のユーザーディスプレイでGUIアプリケーションを実行する

ルートcronを介して他のユーザーディスプレイでGUIアプリケーションを実行する

システムの起動時にcronを介してVPNトンネルを自動的に接続しようとしています。
ルートcronによってトリガされるbashスクリプトがありますsudo crontab -e(他のコマンドには特権の昇格が必要なためです)。

piactl(cli)を使用できますが、接続を試みるときにクライアントを起動する必要があるというメッセージが表示されます。したがって、
私がやりたいことの1つは、私のコンピュータで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のコメント

おすすめ記事