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
문제가 해결됩니다.)