Respostas:
Falta um # no seu script! linha no início, que é a mágica interpretada pelo kernel para dizer qual interpretador de comando deve ser usado para o script.
Faça com que fique assim:
#!/bin/sh
notify-send "hi welcome"
e verifique se o script é executável:
ls -l home/hacks/notify.sh
chmod +x home/hacks/notify.sh
ls -l home/hacks/notify.sh
Além disso, como você está solicitando que isso aconteça apenas uma vez por dia, o fuso horário do crontab é igual ao seu próprio fuso horário? Você pode achar isso acontecendo às 14:00 GMT.
Fazer o crontab rodar é fácil apenas. Aqui vou dizer como executar tarefas do crontab. É útil para quem está preso no crontab.
*/1 * * * * cd /home/hacks && sh notify.sh
Para tornar o script executável, temos que fazer:
chmod +x home/hacks/notify.sh
Aqui eu executo esse script a cada minuto ... Fazendo o script abaixo, você pode escrevê-lo em um arquivo de log para descobrir se está funcionando
gravar log
*/1 * * * * cd /home/hacks && sh notify.sh>>test.log
enviar correio
*/1 * * * * cd /home/hacks && sh notify.sh>>test.log | mail -s "Hi this is example" user@domain.com
4 hipótese:
o cron daemon não está em execução (faça um ps axfww | grep cron
e verifique)
a notificação de envio está tentando enviar a saída para um terminal ou uma sessão X - mas é executada de dentro do cron
ambiente e não sabe "com quem conversar", por assim dizer.
seu script não é executável
o home/
caminho no script crontab é relativo ao usuário em que os scripts são executados. Tente usar o caminho completo
Você precisa abrir o crontab pelo seguinte 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
Isso executará seu script uma vez por hora, das 8h às 15h às 10 minutos, todas as segundas, quartas e sextas-feiras.
Primeiro de tudo, precisamos editar o crontab com Command crontab -e
e, depois disso, Crontab
adicionar o script Path of Executable e no seu caso como este
* 14 * * * home/hacks/notify.sh >/dev/null 2>&1
.
Iniciar / Parar / reiniciar o serviço cron
/etc/init.d/crond start /stop / restart
service crond start /stop /restart
systemctl stop crond.service
systemctl stop crond.service
bastante simples, adicione a seguinte linha na parte inferior do arquivo crontab via:
sudo nano /etc/crontab
@reboot root cd /home/pi/node-sonos-http-api && npm start &