В системе RHEL с помощью systemctl я внес следующее изменение. Я добавил команду «/bin/at now», чтобы запустить службу через минуту. В моем случае я изменил команду остановки на:
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill -9 %i > /dev/null 2>&1; echo "systemctl start vncserver@:1.service" | /bin/at now + 1 minute || :'
Я отредактировал:/etc/systemd/system/vncserver@ :1.service
После внесения изменений выполните эту команду, чтобы обновить систему:демон systemctl -перезагрузить
Вот небольшой bash-скрипт, который я написал, и он сделает то, что вам нужно. Это будет проверять только текущий день и 2 дня в будущем, поскольку это то, что wttr.in возвращает по умолчанию, но я уверен, что вы можете найти какой-то вариант, чтобы расширить его, если это необходимо. Возможно, вам придется поиграть с частью сценария отправки почты в зависимости от используемой вами системы и доступных опций, но это, безусловно, вызовет другой вопрос, если вы застрянете на нем. Вы можете добавить этот скрипт в свой crontab в качестве ежедневной работы и получать электронные письма о приближающихся температурах замерзания.
Если фермеры используют что-то вроде pagerduty, (ха, )вы можете изменить почтовую часть на веб-перехватчик, чтобы отправлять им оповещения через него, или просто по электронной почте на адрес pagerduty.
#!/usr/bin/env bash
json=$(curl -Ss "wttr.in/paris?format=j1")
for ((i=0;i<=2;i++)); do
date=$(jq -r --arg index "$i" '.weather[$index | tonumber] |.date' <<<"$json")
temp=$(jq -r --arg index "$i" '.weather[$index | tonumber] |.mintempC' <<<"$json")
if [[ $temp -le 0 ]]; then
mail -s "There will be frost on $date ($temp degrees)" youremail@example.com
fi
done