Câu trả lời:
Kịch bản của bạn bị thiếu #! dòng lúc bắt đầu, đó là phép thuật được giải thích bởi kernel để nói trình thông dịch lệnh nào sẽ được sử dụng cho tập lệnh.
Làm cho nó trông như thế này:
#!/bin/sh
notify-send "hi welcome"
và đảm bảo tập lệnh có thể thực thi được:
ls -l home/hacks/notify.sh
chmod +x home/hacks/notify.sh
ls -l home/hacks/notify.sh
Ngoài ra, vì bạn đang yêu cầu điều này xảy ra chỉ một lần một ngày, múi giờ của crontab có giống với múi giờ của chính bạn không? Bạn có thể thấy điều này xảy ra lúc 2 giờ chiều GMT.
Làm crontab chạy chỉ dễ dàng. Ở đây tôi sẽ nói làm thế nào để chạy các công việc crontab. Nó rất hữu ích cho bất cứ ai bị mắc kẹt trên crontab.
*/1 * * * * cd /home/hacks && sh notify.sh
Để làm cho kịch bản có thể thực thi được, chúng ta phải làm:
chmod +x home/hacks/notify.sh
Ở đây tôi chạy tập lệnh này cứ sau một phút ... Bằng cách thực hiện tập lệnh bên dưới, bạn có thể viết tập lệnh đó vào một tệp nhật ký để tìm xem nó có hoạt động không
viết nhật ký
*/1 * * * * cd /home/hacks && sh notify.sh>>test.log
gửi thư
*/1 * * * * cd /home/hacks && sh notify.sh>>test.log | mail -s "Hi this is example" user@domain.com
4 giả thuyết:
daemon cron không chạy (làm một ps axfww | grep cron
và kiểm tra)
gửi thông báo đang cố gửi đầu ra đến một thiết bị đầu cuối hoặc phiên X - nhưng nó được chạy từ bên trong cron
môi trường và nó không biết "nói chuyện với ai", có thể nói như vậy.
kịch bản của bạn không được thực thi
các home/
đường dẫn trong kịch bản crontab là tương đối cho người sử dụng các kịch bản được thực hiện như. Hãy thử sử dụng đường dẫn đầy đủ
Bạn phải mở crontab bằng lệnh sau:
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
Điều này sẽ chạy tập lệnh của bạn mỗi giờ một lần từ 8 giờ sáng đến 3 giờ sáng lúc 10 phút mỗi giờ vào thứ Hai, thứ Tư và thứ Sáu.
Trước hết, chúng ta cần chỉnh sửa crontab bằng Command crontab -e
và hơn Bên trong này Crontab
thêm đoạn script Đường dẫn thực thi và trong Trường hợp của bạn như thế này
* 14 * * * home/hacks/notify.sh >/dev/null 2>&1
.
Bắt đầu / Dừng / khởi động lại dịch vụ cron
/etc/init.d/crond start /stop / restart
service crond start /stop /restart
systemctl stop crond.service
systemctl dừng crond.service
khá đơn giản, thêm dòng sau vào cuối tệp crontab qua:
sudo nano /etc/crontab
@reboot root cd /home/pi/node-sonos-http-api && npm start &