Jawaban:
Skrip Anda tidak memiliki #! baris di awal, yang merupakan keajaiban yang ditafsirkan oleh kernel untuk mengatakan interpreter perintah mana yang akan digunakan untuk skrip.
Jadikan seperti ini:
#!/bin/sh
notify-send "hi welcome"
dan pastikan skrip dapat dieksekusi:
ls -l home/hacks/notify.sh
chmod +x home/hacks/notify.sh
ls -l home/hacks/notify.sh
Juga, karena Anda meminta hal ini terjadi sekali sehari, apakah zona waktu crontab sama dengan zona waktu Anda sendiri? Anda mungkin menemukan ini terjadi pada pukul 14:00 GMT.
Membuat crontab berjalan mudah saja. Di sini saya akan mengatakan bagaimana menjalankan pekerjaan crontab. Ini berguna untuk siapa saja yang terjebak di crontab.
*/1 * * * * cd /home/hacks && sh notify.sh
Untuk membuat skrip dapat dieksekusi, kita harus melakukan:
chmod +x home/hacks/notify.sh
Di sini saya menjalankan skrip ini untuk setiap satu menit ... Dengan melakukan skrip di bawah ini, Anda dapat menulisnya dalam file log untuk mengetahui apakah itu berfungsi
menulis log
*/1 * * * * cd /home/hacks && sh notify.sh>>test.log
kirim email
*/1 * * * * cd /home/hacks && sh notify.sh>>test.log | mail -s "Hi this is example" user@domain.com
4 hipotesis:
daemon cron tidak berjalan (lakukan a ps axfww | grep cron
dan periksa)
notify-send mencoba mengirim output ke terminal, atau sesi X - tetapi dijalankan dari dalam cron
lingkungan dan tidak tahu "siapa yang harus diajak bicara", jadi untuk berbicara.
skrip Anda tidak dapat dieksekusi
yang home/
jalan dalam naskah crontab adalah relatif terhadap pengguna script dijalankan sebagai. Coba gunakan path lengkap
Anda harus membuka crontab dengan perintah berikut:
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
Ini akan menjalankan skrip Anda satu jam sekali dari jam 8 pagi - 3 sore di jam 10 menit melewati jam setiap hari Senin, Rabu dan Jumat.
Pertama-tama, kita perlu mengedit crontab dengan Command crontab -e
dan daripada Di dalam ini Crontab
tambahkan script Path of Executable dan dalam Kasus Anda seperti ini
* 14 * * * home/hacks/notify.sh >/dev/null 2>&1
.
Mulai / Berhenti / mulai ulang layanan cron
/etc/init.d/crond start /stop / restart
service crond start /stop /restart
systemctl stop crond.service
systemctl stop crond.service
cukup sederhana, tambahkan baris berikut di bagian bawah file crontab melalui:
sudo nano /etc/crontab
@reboot root cd /home/pi/node-sonos-http-api && npm start &