rootスクリプトがzenityダイアログをユーザーに表示させます。

rootスクリプトがzenityダイアログをユーザーに表示させます。

私は指示に従った。ここ外部ドライブをコンピュータに接続するたびに自動的に起動するように自動バックアップを設定します。

zenityこれはうまくいきますが、さらにユーザーに2つのダイアログボックスを表示したいと思います。

  • バックアップを実行する前に、ユーザーに本当にバックアップを実行するか(またはドライブのみを使用するか)尋ねます。
  • バックアップが完了したら、ユーザーにドライブを安全に取り外すか(またはドライブを使用するか)尋ねます。

今私の問題はborgサイトのバックアップスクリプトにありますroot。ユーザーにダイアログを表示するには、--display=:0.0zenityコマンドを追加してmy ~/.bashrc

xhost local:$USER > /dev/null

このアプローチの問題は、端末(Gnomeアプリケーションなど)が起動した後にのみ機能することです。 Gnomeにログインしてドライブを接続すると、ダイアログボックスが表示されず、次のsudo journalctlエラーが原因でスクリプトが失敗することがわかります。

zenity[2731]: cannot open display: :0.0

しかし、最初に端末を開くと動作します。xhost次のコマンドを追加してみましたが、/etc/profile.d/端末を起動しても機能しません。

だから私の質問は次のようになりますxhostユーザーがターミナルアプリケーションを開いたままにしてもコマンドを機能させるには、どこにコマンドを入力する必要がありますか?それともどうすればいいですか?

ベストアンサー1

私はこれに多くの時間を無駄にし、最終的に自動起動にGnome Terminalを追加するようになりました~/.bashrc

cd ~/.config/autostart
ln -s /usr/share/applications/org.gnome.Terminal.desktop

洗練されたソリューションではありませんが、少なくとも外部ドライブにバックアップを作成するのは簡単です。

おすすめ記事