GDM使ç¨æã«libnotifyã®notify-sendãcronããåä½ããªã件ã¨ãã®å¯¾å¦(ãã¼ã¸ã§ã³2.30ç³»æç¹)
以åã¯GDMããã°ã©ãã£ã«ã«ãã°ã¤ã³ããã¨ãã«ãç°å¢å¤æ°DISPLAYã®æå®ã®ã¿ã§cronããlibnotifyã®notify-sendã³ãã³ãã«ããéç¥ãè¡ãã¦ããã®ã ãããã®å¾ã®ãã¼ã¸ã§ã³(2.30ç³»æç¹)ã§ã¯ãã¾ãéç¥ã表示ããããX Window Systemä¸ã§åä½ããä»ã®GUIããã°ã©ã ãåæ§ã«èµ·åã§ããªãã
cronã§å®è¡ããã³ãã³ãè¡ãããã£ã¦ãã¡ã¤ã«ã«ã¡ãã»ã¼ã¸ãæ¸ãåºãããã«ãã¦ãããè¦ã¦ã¿ãã¨
libnotify-Message: Unable to get session bus: /usr/bin/dbus-launch terminated abnormally with the following error: No protocol specified Autolaunch error: X11 initialization failed.
ã®ããã«ãªã£ã¦ãã(ç¶æ ã«ãã£ã¦å¾®å¦ã«åºåå 容ãå¤ããå ´åããã)ã
詳細
è²ã ã¨èª¿ã¹ãã¨ãããGDMãããã°ã¤ã³ããã¨ãã«ã¯- Xã®èªè¨¼ã«${HOME}/.Xauthorityã¯ç¨ããããªã
- ç°å¢å¤æ°XAUTHORITYã«ç¤ºããå ´æã®ãã¡ã¤ã«ã代ããã«ç¨ãããã
ã¨ããåä½ã«ãªã£ã¦ãããä»ã®ãã£ã¹ãã¬ã¤ããã¼ã¸ã£(ãã°ã¤ã³ç»é¢ã®ããã°ã©ã )ãããã°ã¤ã³ããå ´åã¨Xã®èªè¨¼ã®åä½ã«éãããããã¨ãåãã£ãã
ç°å¢å¤æ°XAUTHORITYã¯GDMãããã°ã¤ã³ããã»ãã·ã§ã³ã®ä¸ããèµ·åãããããã»ã¹ã§ã¯è¨å®ããã¦ããããcronã§å®è¡ãããéã«ã¯è¨å®ããã¦ããªãã
ãã®ãã¡ã¤ã«ã®å ´æã¯
/var/run/gdm/auth-for-[ã¦ã¼ã¶å]-[æåå]/database
ã¨ãªã£ã¦ããã®ã ããæååé¨åã¯ã©ã³ãã ã§ããã¤ããã£ã¬ã¯ããª/var/run/gdm/ã¯
$ stat -c "%A %U" /var/run/gdm/ drwx--x--x root
(ãã£ã¹ããªã«ãããããããªãã)管çè (root)ã ãããä¸è¦§ãåå¾ã§ããããã¿ã¼ã³ã«åã£ããã®ãæ¢ç´¢ããã¨ããæ¹æ³ãç¨ããã«ç´æ¥æ£ç¢ºãªãã¹ãå¾ã¦ãããæå®ããã¨ãããã¨ãå¿ è¦ã«ãªãã
対å¦
æã£åãæ©ãæ¹æ³ã¨ãã¦- ã°ã©ãã£ã«ã«ãã°ã¤ã³æã®èªåèµ·åã¹ã¯ãªããã®ä¸ã§DISPLAYã¨XAUTHORITYã®2ã¤ã®ç°å¢å¤æ°ããã¡ã¤ã«ã«æ¸ãåºã
- cronããã¯ãã®ãã¡ã¤ã«ããã¨ã«ãã¦ç°å¢å¤æ°ãè¨å®ãã¤ã¤ã³ãã³ããå®è¡ããããã«ãã
ã®ããã«ãã¦ã¿ããã¨ã«ããã
ãã¹ã¯ãããç°å¢ãªã©ã®èªåèµ·åã¹ã¯ãªããã®ä¸ã«
env | egrep "^(DISPLAY|XAUTHORITY)=" | while read l; do echo "export ${l}" done >| ~/auth.sh chmod 600 ~/auth.sh
ã®ããã«è¨è¿°ããã¨ã次åã®ãã°ã¤ã³æã«
export DISPLAY=:0 export XAUTHORITY=/var/run/gdm/auth-for-[ã¦ã¼ã¶å]-[æåå]/database
ã¨ãã£ãå 容ã®ã·ã§ã«ã¹ã¯ãªããã${HOME}/auth.shã¨ããå ´æã«ã§ããã®ã§ãcronããã¯
[å] [æ] [æ¥] [æ] [ææ¥] sh -c '. ~/auth.sh; notify-send [ã¿ã¤ãã«] [æ¬æ]'
ã®ããã«å®è¡ããã¨éç¥ã表示ãããããã«ãªããã·ã§ã«ã¹ã¯ãªãããè¨è¿°ãã¦ãããcronã§å®è¡ãããå ´åã®å 容ã¯
#! /bin/sh . ~/auth.sh notify-send [ã¿ã¤ãã«] [æ¬æ]
ã®ããã«ãªãã
使ç¨ãããã¼ã¸ã§ã³:
- GDM 2.30.2
- libnotify 0.4.5
- cronie 1.4.4