Как остановить сценарий в определенное время, пока он снова не будет запущен cron?

используйте -v, чтобы увидеть, куда упали пакеты...

iptables --list -n -v
12
05.01.2017, 18:10
3 ответа

] Я бы также использовал cron, чтобы «остановить» или «убить» эту службу или скрипт в указанное время.
Сначала создайте задание cron, чтобы запустить задание или сценарий. (вы можете легко запустить другой cron, который завершит задание с именем sudo pkill wget )

Во-вторых, вы хотите видеть запущенные задачи crontab в удобном и читаемом формате в выводе:

   ps -o pid,sess,cmd afx | egrep "( |/)cron( -f)?$"

Они появятся в первых строках, примерно так:

1108  1108 cron
4288  1108 \_ CRON
4289  4289     \_ /bin/sh -c /path/to/my/crontab/script1.sh
4290  4289         \_ /bin/bash /path/to/my/crontab/script1.sh
4295  4289             \_ /usr/bin/wget LINK

First столбец - это PID, второй - идентификатор сеанса, а третий - команда, запущенная cron. Вы можете убить все процессы, связанные с определенной задачей cron, используя идентификатор сеанса, поэтому в приведенном выше примере вы должны убить идентификатор сеанса 4289:

   pkill -s 4289

Вам нужно поместить pkill в сценарий и запустить его как cron

4
27.01.2020, 19:54

Если ваша синхронизация может легко продолжиться после 17 часов гибернации, попробуйте

0 0 * * * killall -CONT -g sync.sh || /usr/local/bin/sync.sh
7 0 * * * killall -STOP -g sync.sh

Если ваша синхронизация предпочитает перезапуск с самого начала, попробуйте

0 0 * * * exec /usr/local/bin/sync.sh
7 0 * * * killall -TERM -g sync.sh

Если ваша синхронизация или ее подзадачи игнорируют сигналы, но не оставляют мусора, сделайте это

0 0 * * * exec /usr/local/bin/sync.sh
7 0 * * * killall -KILL -g sync.sh

killall psmisc

9
27.01.2020, 19:54

Вы можете запустить его с помощью команды timeout ,

timeout - run a command with a time limit

Synopsis
timeout [OPTION] NUMBER[SUFFIX] COMMAND [ARG]...
timeout [OPTION]
Description

Start COMMAND, and kill it if still running after NUMBER seconds. SUFFIX may be 's' for seconds (the default), 'm' for minutes, 'h' for hours or 'd' for days. 

PS. Если процесс синхронизации занимает слишком много времени, вы можете рассмотреть другой подход к синхронизации данных, возможно, заблокировать репликацию.

25
27.01.2020, 19:54

Теги

Похожие вопросы