Cinnamon에서 알림 전송이 작동하지 않습니다.

Cinnamon에서 알림 전송이 작동하지 않습니다.

을 사용하고 있습니다 Linux Mint 17.
50분마다, 잠시 쉬는 시간마다 1시간마다 알림을 받고 싶습니다.

이것은예약 된 일들:

nazar@desktop ~ $ crontab -l

DISPLAY=:0.0
XAUTHORITY=/home/matrix/.Xauthority

00 13 * * * /home/nazar/Documents/scripts/lunch_break_job.sh # JOB_ID_2
50 * * * * /home/nazar/Documents/scripts/pc_break.sh # JOB_ID_1
* * * * * /home/nazar/Documents/scripts/cron_job_test.sh # JOB_ID

다음 스크립트는 다음과 같습니다 /home/nazar/Documents/scripts/cron_job_test.sh.

#!/bin/bash

export DISPLAY=0.0
export XAUTHORITY=/home/matrix/.Xauthority

if [ -r "$HOME/.dbus/Xdbus" ]; then
  . "$HOME/.dbus/Xdbus"
fi

/usr/bin/notify-send -i "hello"

이 함수 조각은 다음과 같습니다.

if [ -r "$HOME/.dbus/Xdbus" ]; then
  . "$HOME/.dbus/Xdbus"
fi

꼭 확인하시고 DBUS_SESSION_BUS_ADDRESS이용하세요.

이 답변에 따르면스크립트를 실행했는데 이제 Dbus스크립트가 다음 위치에 저장되었습니다 $HOME/.dbus/Xdbus.

nazar@desktop ~ $ cat $HOME/.dbus/Xdbus
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-flm7sXd0I4,guid=df48c9c8d751d2785c5b31875661ebae
export DBUS_SESSION_BUS_ADDRESS

모든 것이 작동해야 합니다. 내가 잃어버린 것을 찾을 수 없습니다. 지금은 알림이 작동하지 않기 때문입니다.

터미널에서는 잘 작동합니다.

여기에 이미지 설명을 입력하세요.

이 문제를 어떻게 해결하나요?

해결책:

지금 내 모습은 다음과 같습니다 crontab.

DISPLAY=":0.0"
XAUTHORITY="/home/nazar/.Xauthority"
XDG_RUNTIME_DIR="/run/user/1000"
00 13 * * * /home/nazar/Documents/scripts/lunch_break_job.sh # JOB_ID_2
50 * * * * /home/nazar/Documents/scripts/pc_break.sh # JOB_ID_1
# * * * * * /home/nazar/Documents/scripts/cron_job_test.sh # JOB_ID

이제 다음과 같습니다 cron_job_test.sh.

#!/bin/bash

/usr/bin/notify-send -i /home/nazar/Pictures/icons/Mail.png "hello" "It is just cron test message"

pc_break.sh:

#!/bin/bash

/usr/bin/notify-send -i /home/nazar/Pictures/icons/download_manager.png "Break:" "Make a break for 10 min"

lunch_break_job.sh:

#!/bin/bash

/usr/bin/notify-send -i /home/nazar/Pictures/icons/Apple.png "Lunch: " "Please, take a lunch!"

답변1

XDG_RUNTIME_DIR또한 설정해야합니다. crontab을 다음으로 변경하십시오.

DISPLAY=":0.0"
XAUTHORITY="/home/nazar/.Xauthority"
XDG_RUNTIME_DIR="/run/user/1001"
00 13 * * * /home/nazar/Documents/scripts/lunch_break_job.sh # JOB_ID_2
50 * * * * /home/nazar/Documents/scripts/pc_break.sh # JOB_ID_1
* * * * * /home/nazar/Documents/scripts/cron_job_test.sh # JOB_ID

nazar사용자 이름과 실제 UID를 변경했는지 확인하세요 1001. 를 실행하여 UID를 얻을 수 있습니다 id -u.

스크립트에 필요한 것은 다음과 같습니다.

#!/bin/bash

/usr/bin/notify-send "hello" 

방금 Cinnamon을 실행하는 Arch에서 이것을 테스트했는데 훌륭하게 작동합니다.

변수는 crontab에서 설정되므로 스크립트에서 아무것도 내보낼 필요가 없습니다. 이 작업을 수행해도 소용이 없습니다. 스크립트는 cron에 의해 호출되며 어쨌든 필요한 값을 내보내지 않습니다.

관련 정보