zenifyを使って起動時にポップアップを送信したいです。
zenity --info --text="`hostname -I`" --title="Rpi Local IP" --display=:0.0
これは私のサービスファイルです。
[Unit]
Description=Display IP at boot
After=networking.service graphical.target
Wants=networking.service graphical.target
[Service]
User=pi
Environment=DISPLAY=:0.0
Environment=XAUTHORITY=/home/pi/.Xauthority
ExecStart=/bin/bash -c 'zenity --info --text="`hostname -I`" --title="Rpi Local IP" --display=:0.0'
[Install]
WantedBy=graphical.target
エラーは毎回表示されます。
raspberrypi bash[530]: Invalid MIT-MAGIC-COOKIE-1 keyUnable to init server: Could not connect: Connection refused
raspberrypi zenity[530]: cannot open display: :0.0
サービスを開始する前に10秒の睡眠時間を追加した場合: ExecStartPre=/bin/sleep 10
、すべてが正常です。
私の間違いはどこにありますか?
ありがとうございます:) !
答え1
ついに成功しました。これ郵便はがき。私のサービスファイルが「boot_ip.service」であるとしましょう。まず、サービスをシステムサービスではなくUSERサービスとして作成します。
サービスファイルは次のとおりです~/.config/systemd/user/boot_ip.service
。
[Unit]
Description=bootIp
PartOf=graphical-session.target
[Service]
ExecStart=/bin/bash -c 'zenity --info --text="`hostname -I`" --title="Rpi Local IP" --display=:0.0'
[Install]
WantedBy=xsession.target
次に、次のファイルを作成します~/.config/systemd/user/xsession.target
。
[Unit]
Description=Xsession running
BindsTo=graphical-session.target
このファイルは、グラフィカル環境が準備されたことを示します。
次に、次のファイルを作成します.xsessionrc
。 (.xsession
項目で述べたようにファイルを作成するとグラフィック環境が破壊され、簡単なログインもできませんのでご注意ください。)
systemctl --user import-environment PATH DBUS_SESSION_BUS_ADDRESS
systemctl --no-block --user start xsession.target
ユーザーがログインすると、このファイルが実行されます。ご覧のとおり、このファイルが起動してxsession.target
サービスが開始され、boot_ip.service
問題が解決します。)