tag picard para musicbrainz mac kid3 easytag linux cron notify

linux - picard - Cron con notificar-enviar



musicbrainz picard debian (9)

Necesito mostrar una notificación de un trabajo cron. Mi crontab es algo como:

$ crontab -l # m h dom mon dow command * * * * * Display=:0.0 /usr/bin/notify-send Hey "How are you"

Revisé /var/log/syslog y el comando se ejecuta en realidad cada minuto, pero no aparece la notificación. ¿Alguien puede ayudarme a entender por qué?


Creé un script / usr / bin que usa la técnica DISPLAY-: 0.0 http://pastebin.com/h11p2HtN

No tiene en cuenta XAUTHORITY. Tendré que investigar más a fondo.


En Ubuntu 14.04 la exportación de la pantalla no funcionó para mí. A continuación se muestra un script cron que estoy usando para apagar una máquina virtual cuando el estado de la batería de una computadora portátil es demasiado bajo. La configuración de línea DBUS_SESSION_BUS_ADDRESS es la modificación que finalmente consiguió que las advertencias funcionaran correctamente.

#!/bin/bash # if virtual machine is running, monitor power consumption if pgrep -x vmware-vmx; then bat_path="/sys/class/power_supply/BAT0/" if [ -e "$bat_path" ]; then bat_status=$(cat $bat_path/status) if [ "$bat_status" == "Discharging" ]; then bat_current=$(cat $bat_path/capacity) # halt vm if critical; notify if low if [ "$bat_current" -lt 10 ]; then /path/to/vm/shutdown/script echo "$( date +%Y.%m.%d_%T )" >> "/home/user/Desktop/VM Halt Low Battery" elif [ "$bat_current" -lt 15 ]; then eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)"; notify-send -i "/usr/share/icons/ubuntu-mono-light/status/24/battery-caution.svg" "Virtual machine will halt when battery falls below 10% charge." fi fi fi fi exit 0

La línea correspondiente está aquí:

eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)";

Encontré la solución aquí: https://askubuntu.com/a/346580/255814


He encontrado la respuesta:

$ crontab -l # m h dom mon dow command * * * * * export DISPLAY=:0.0 && export XAUTHORITY=/home/ravi/.Xauthority && sudo -u ravi /usr/bin/notify-send Hey "How are you"

Gracias ravi


Intente esto cuando llame a notify-send en su script:

echo "PASSWORD" | sudo -u USER notify-send "your alert message"


Puede ser que puedas probar:

* * * * * env DISPLAY=:0.0 sudo -u ravi /usr/bin/notify-send Hey "How are you"


Respuesta simple y reducida:

01 * * * * export DISPLAY=:0.0 && notify-send Hey "How are you"

Si necesita el permiso de Xauthority , aquí hay una forma generalizable utilizando la variable $LOGNAME

01 * * * * export DISPLAY=:0.0 && && export XAUTHORITY=/home/$LOGNAME/.Xauthority notify-send Hey "How are you"

Como lo señaló @tripleee, aquí no hay una necesidad real de sudo



Trabaja para mí en fedora 22:

Ponga esta línea en el script .sh antes de que se llame a la notificación de envío:

eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)"


Yo uso i3 en Ubuntu 18.04. Mi manera de resolver esto es:

* * * * * XDG_RUNTIME_DIR=/run/user/$(id -u) notify-send Hey "this is dog!"