У меня есть notify.sh
скрипт, который выглядит так:
notify-send "hi welcome"
Мой crontab уведомление на 2 часа дня:
0 14 * * * home/hacks/notify.sh
Тем не менее, это не работает. В чем проблема?
В вашем сценарии отсутствует #! строка в начале, которая является магией, интерпретируемой ядром, чтобы сказать, какой интерпретатор команд должен использоваться для сценария.
Сделайте так, чтобы это выглядело так:
#!/bin/sh
notify-send "hi welcome"
и убедитесь, что скрипт исполняемый:
ls -l home/hacks/notify.sh
chmod +x home/hacks/notify.sh
ls -l home/hacks/notify.sh
Кроме того, поскольку вы просите, чтобы это происходило только один раз в день, совпадает ли часовой пояс crontab с вашим собственным часовым поясом? Это может произойти в 2 часа дня по Гринвичу.
Сделать запуск crontab просто. Здесь я собираюсь рассказать, как запускать задания crontab. Это полезно для всех, кто застрял на crontab.
Чтобы сделать скрипт исполняемым, мы должны сделать:
Здесь я запускаю этот скрипт каждую минуту ... Делая скрипт ниже, вы можете записать его в файл журнала, чтобы определить, работает ли он
написать журнал
Отправить письмо
источник
4 гипотеза:
демон cron не работает (сделайте
ps axfww | grep cron
и проверьте)notify-send пытается отправить вывод на терминал или сеанс X - но он запускается изнутри
cron
среды и не знает, с кем говорить, так сказать.ваш скрипт не исполняемый
home/
путь в кронтаб сценария по отношению к пользователю сценарии запускается на выполнение , как. Попробуйте использовать полный путьисточник
Добавьте
export DISPLAY=:0
над строкой уведомления-отправки в вашем скрипте. Это касается второго пункта Лорнезога.источник
Вы должны открыть crontab следующей командой:
Это будет запускать ваш сценарий один раз в час с 8:00 до 17:00 в 10 минут после часа каждый понедельник, среду и пятницу.
источник
Прежде всего, нам нужно отредактировать crontab с помощью Command,
crontab -e
а затем внутри этогоCrontab
добавить скрипт Path of Executable и в вашем случае вот так* 14 * * * home/hacks/notify.sh >/dev/null 2>&1
.Запуск / остановка / перезапуск службы cron
/etc/init.d/crond start /stop / restart
service crond start /stop /restart
systemctl stop crond.service
systemctl stop crond.service
источник
довольно просто, добавьте следующую строку внизу файла crontab через:
sudo nano /etc/crontab
@reboot root cd /home/pi/node-sonos-http-api && npm start &
источник