У меня Raspberry Pi работает OSMC (на основе Debian).
Я установил задание cron для запуска скрипта sync.sh в полночь.
0 0 * * * /usr/local/bin sync.sh
Мне нужно остановить сценарий в 7 утра. В настоящее время я использую:
0 7 * * * shutdown -r now
Есть ли способ лучше? Я чувствую, что перезагрузка - это перебор.
Благодарность
Если ваша синхронизация может легко продолжаться после 17 часов гибернации, попробуйте
Если ваша синхронизация предпочитает перезапускаться с самого начала, попробуйте
Если ваша синхронизация или ее подзадачи игнорируют сигналы, но не оставляют мусора, сделайте это
killall
∈ psmiscисточник
0 0 * * * timeout 7h /usr/local/bin/sync.sh
или мой в основном эквивалентныйkillall -TERM
вариант.Я бы также использовал cron, чтобы «остановить» или «убить» этот сервис или скрипт в указанное время.
Сначала создайте задание cron для запуска задания или сценария. (вы можете легко запустить другой cron, который убьет задание с именем
sudo pkill wget
)Во-вторых, вы хотите видеть запущенные задачи crontab в удобном и читаемом формате в выводе:
Они появятся в первых строках, примерно так:
Первый столбец - PID, второй - Session ID, а третий - команда, запущенная cron. Вы можете уничтожить все процессы, связанные с конкретной задачей cron, используя идентификатор сессии, поэтому в приведенном выше примере вы должны уничтожить идентификатор сессии 4289:
Вы должны поместить pkill в скрипт и запустить его как cron
источник