Yanıtlar:
Komut dosyasında bir # eksik! başlangıçta, hangi komut tercümanının senaryo için kullanılacağını söylemek için çekirdeğin yorumladığı sihir.
Şunun gibi görünmesini sağlayın:
#!/bin/sh
notify-send "hi welcome"
ve betiğin çalıştırılabilir olduğundan emin olun:
ls -l home/hacks/notify.sh
chmod +x home/hacks/notify.sh
ls -l home/hacks/notify.sh
Ayrıca, bunun günde sadece bir kez olmasını istediğinden, crontab'ın saat dilimi kendi saat diliminle aynı mı? Bunu 2 de GMT'de bulabilirsiniz.
Crontab'ın çalıştırılması yalnızca kolaydır. Burada crontab işlerinin nasıl çalıştırılacağını söyleyeceğim. Crontab'a takılan herkes için kullanışlıdır.
*/1 * * * * cd /home/hacks && sh notify.sh
Komut dosyasını çalıştırılabilir yapmak için yapmamız gereken:
chmod +x home/hacks/notify.sh
İşte bu betiği her dakika çalıştırıyorum ... Aşağıdaki betiği yaparak, çalışıp çalışmadığını bulmak için bir günlük dosyasına yazabilirsiniz.
günlük yaz
*/1 * * * * cd /home/hacks && sh notify.sh>>test.log
posta göndermek
*/1 * * * * cd /home/hacks && sh notify.sh>>test.log | mail -s "Hi this is example" user@domain.com
4 hipotez:
cron arka plan programı çalışmıyor (bir a ps axfww | grep cron
ve kontrol et)
notify-send, bir terminale veya bir X oturumuna çıktı göndermeye çalışıyor - ancak cron
ortamın içinden koştu ve "kiminle konuşacağını" bilmiyor.
komut dosyanız çalıştırılamaz
home/
crontab komut yolu komut olarak işletilirse kullanıcıya göre olur. Tam yolu kullanmayı deneyin
Aşağıdaki komutu kullanarak crontab'ı açmalısınız:
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
Bu, senaryonuzu saat 8: 00-3: 00 arasında saat başı bir kez, her pazartesi, çarşamba ve cuma saatin 10 dakikasında çalıştıracaktır.
Öncelikle, crontab komutunu Command ile düzenlemeliyiz ve Inside'dan crontab -e
daha çok Crontab
Yürütülebilirler dizini ve bununla birlikte bu şekilde ekleyin
* 14 * * * home/hacks/notify.sh >/dev/null 2>&1
.
Cron hizmetini başlat / durdur / yeniden başlat
/etc/init.d/crond start /stop / restart
service crond start /stop /restart
systemctl stop crond.service
systemctl stop crond.service
oldukça basit, üzerinden crontab dosyasının altına aşağıdaki satırı ekleyin:
sudo nano /etc/crontab
@reboot root cd /home/pi/node-sonos-http-api && npm start &