Respuestas:
¡A tu script le falta un #! línea al comienzo, que es la magia interpretada por el núcleo para decir qué intérprete de comandos se utilizará para el script.
Haz que se vea así:
#!/bin/sh
notify-send "hi welcome"
y asegúrese de que el script sea ejecutable:
ls -l home/hacks/notify.sh
chmod +x home/hacks/notify.sh
ls -l home/hacks/notify.sh
Además, dado que está solicitando que esto suceda solo una vez al día, ¿la zona horaria del crontab es la misma que su propia zona horaria? Es posible que esto ocurra a las 2 p.m. GMT.
Hacer que crontab se ejecute solo es fácil. Aquí voy a decir cómo ejecutar trabajos crontab. Es útil para cualquiera que esté atascado en crontab.
*/1 * * * * cd /home/hacks && sh notify.sh
Para hacer que el script sea ejecutable, tenemos que hacer:
chmod +x home/hacks/notify.sh
Aquí ejecuto este script por cada minuto ... Al hacer el siguiente script, puede escribirlo en un archivo de registro para saber si funciona
escribir registro
*/1 * * * * cd /home/hacks && sh notify.sh>>test.log
enviar correo
*/1 * * * * cd /home/hacks && sh notify.sh>>test.log | mail -s "Hi this is example" user@domain.com
4 hipótesis:
el cron daemon no se está ejecutando (hacer ps axfww | grep cron
y verificar)
el envío de notificaciones está intentando enviar la salida a un terminal o una sesión X, pero se ejecuta desde el cron
entorno y no sabe "con quién hablar", por así decirlo.
tu script no es ejecutable
la home/
ruta en el script crontab es relativa al usuario en el que se ejecutan los scripts. Intenta usar la ruta completa
Tienes que abrir crontab con el siguiente comando:
crontab -u username -e (to edit) -l(to list) -r(to remove) 10(minutes) 8-15(hours) *(Day of month) *(month) 1,3,5(days of week) /path/to/script/script_name.sh
Esto ejecutará su script una vez por hora de 8 a.m. a 3 p.m. a las 10 minutos de la hora todos los lunes, miércoles y viernes.
En primer lugar, necesitamos editar el crontab con Command crontab -e
y luego, dentro de esto, Crontab
agregar la ruta de acceso del script ejecutable y en su caso de esta manera
* 14 * * * home/hacks/notify.sh >/dev/null 2>&1
.
Iniciar / detener / reiniciar el servicio cron
/etc/init.d/crond start /stop / restart
service crond start /stop /restart
systemctl stop crond.service
systemctl stop crond.service
bastante simple, agregue la siguiente línea en la parte inferior del archivo crontab a través de:
sudo nano /etc/crontab
@reboot root cd /home/pi/node-sonos-http-api && npm start &