Есть ли более гранулярный графический планировщик? Вместо того, чтобы просто на минуту, но на определенную секунду? [dубликат]

Ubuntu использует семейство шрифтов Ubuntu для своих стандартных шрифтов.

Шрифты Ubuntu распространяются под [

]

d2] здесь , который действительно является открытым исходным кодом.

58
задан 30 December 2016 в 22:25

22 ответа

Cron допускает, как минимум, одну минуту. Что вы можете сделать, это написать сценарий оболочки с бесконечным циклом, который запускает вашу задачу, а затем спит в течение 5 секунд. Таким образом, ваша задача будет выполняться более или менее каждые 5 секунд, в зависимости от того, сколько времени занимает сама задача.

Это действительно звучит так, будто вы делаете то, что вам, вероятно, не следует делать. Это кажется неправильным.

56
ответ дан 18 July 2018 в 12:09

Cron допускает, как минимум, одну минуту. Что вы можете сделать, это написать сценарий оболочки с бесконечным циклом, который запускает вашу задачу, а затем спит в течение 5 секунд. Таким образом, ваша задача будет выполняться более или менее каждые 5 секунд, в зависимости от того, сколько времени занимает сама задача.

#!/bin/bash while true; do # Do something sleep 5; done

Вы можете создать файл my-task.sh с указанным выше содержимым и запустить его с помощью sh my-task.sh. При желании вы можете настроить его с помощью функции supervisor в качестве службы, чтобы она запускалась при загрузке системы и т. Д.

Это действительно звучит так, будто вы делаете то, что, вероятно, не должно делать, , Это кажется неправильным.

58
ответ дан 24 July 2018 в 19:55

Cron допускает, как минимум, одну минуту. Что вы можете сделать, это написать сценарий оболочки с бесконечным циклом, который запускает вашу задачу, а затем спит в течение 5 секунд. Таким образом, ваша задача будет выполняться более или менее каждые 5 секунд, в зависимости от того, сколько времени занимает сама задача.

#!/bin/bash

while true; do
  # Do something
  sleep 5;
done

Вы можете создать файл my-task.sh с указанным выше содержимым и запустить его с помощью sh my-task.sh. При желании вы можете настроить его с помощью функции supervisor в качестве службы, чтобы он запускался при загрузке системы и т. Д.

Это действительно звучит так, будто вы делаете то, что, вероятно, не должно делать , Это неправильно .

58
ответ дан 2 August 2018 в 17:50

Cron допускает, как минимум, одну минуту. Что вы можете сделать, это написать сценарий оболочки с бесконечным циклом, который запускает вашу задачу, а затем спит в течение 5 секунд. Таким образом, ваша задача будет выполняться более или менее каждые 5 секунд, в зависимости от того, сколько времени занимает сама задача.

#!/bin/bash

while true; do
  # Do something
  sleep 5;
done

Вы можете создать файл my-task.sh с указанным выше содержимым и запустить его с помощью sh my-task.sh. При желании вы можете настроить его с помощью функции supervisor в качестве службы, чтобы он запускался при загрузке системы и т. Д.

Это действительно звучит так, будто вы делаете то, что, вероятно, не должно делать , Это неправильно .

58
ответ дан 9 August 2018 в 02:28

Я делал это очень успешно (и конечный результат запускает недели за раз, пока машина не перезагружена). Что касается того, что я делал прямо сейчас, обновляя информацию и помещая ее в кеш - обновляя каждые 10 секунд.

#!/bin/sh SLEEP=5 # do stuff sleep $SLEEP # do stuff sleep $SLEEP # do stuff sleep $SLEEP # do stuff sleep $SLEEP # echo and restart... exec $0

«exec $ 0» перезапускает скрипт, но заменяет исполняемый скрипт. Его можно начать с линии crontab @reboot.

1
ответ дан 18 July 2018 в 12:09

Минимальная конфигурация в cron - минуты, вы не можете установить ее в течение 5 секунд. Вы можете использовать кварц, который позволяет секунд. http://www.quartz-scheduler.org/docs/tutorials/crontrigger.html

2
ответ дан 18 July 2018 в 12:09

Вы можете использовать GNU-пакет mcron, альтернативу «Vixie cron».

http://www.gnu.org/software/mcron/manual/mcron.html#Top

«Может быть легко разрешено задавать более тонкие временные точки, то есть секунды. В принципе это может быть увеличено до микросекунд, но это не реализовано».

7
ответ дан 18 July 2018 в 12:09

Просто используйте цикл:

while true ; do ./your-script & sleep 5; done

Это запустит ваш скрипт в качестве фонового задания, спящий на 5 секунд, затем снова запустится. Вы можете использовать Ctrl-C, чтобы прервать его, или использовать любое другое условие вместо true, например. ! test -f /tmp/stop-my-script только для цикла, пока файл /tmp/stop-my-script не существует.

27
ответ дан 18 July 2018 в 12:09

Используйте cacti для мониторинга маршрутизатора и коммутатора, но Cron разрешает использовать как минимум одну минуту, поэтому, если один порт / устройство выключен, предупреждение не появится до двух минут.

2
ответ дан 18 July 2018 в 12:09

У вас может быть задание cron запускать скрипт каждую минуту, которая запускает 12 фоновых процессов:

* * * * * ~/dostuff.sh

dostuff.sh:

(sleep 5 && /path/to/task) & (sleep 10 && /path/to/task) & (sleep 15 && /path/to/task) & (sleep 20 && /path/to/task) & (sleep 25 && /path/to/task) & (sleep 30 && /path/to/task) & (sleep 35 && /path/to/task) & (sleep 40 && /path/to/task) & (sleep 45 && /path/to/task) & (sleep 50 && /path/to/task) & (sleep 55 && /path/to/task) & (sleep 60 && /path/to/task) & [ ! d2]

Мой вопрос, однако, заключается в том, что вы можете делать с EARTH каждые 5 секунд?

26
ответ дан 18 July 2018 в 12:09

Я делал это очень успешно (и конечный результат запускает недели за раз, пока машина не перезагружена). Что касается того, что я делал прямо сейчас, обновляя информацию и помещая ее в кеш - обновляя каждые 10 секунд.

#!/bin/sh SLEEP=5 # do stuff sleep $SLEEP # do stuff sleep $SLEEP # do stuff sleep $SLEEP # do stuff sleep $SLEEP # echo and restart... exec $0

«exec $ 0» перезапускает скрипт, но заменяет исполняемый скрипт. Его можно начать с линии crontab @reboot.

1
ответ дан 24 July 2018 в 19:55

Минимальная конфигурация в cron - минуты, вы не можете установить ее в течение 5 секунд. Вы можете использовать кварц, который позволяет секунд. http://www.quartz-scheduler.org/docs/tutorials/crontrigger.html

2
ответ дан 24 July 2018 в 19:55
  • 1
    Кажется, что кварц не является открытым исходным кодом. Это верно? – txwikinger 5 August 2010 в 00:24
  • 2
    Он имеет версию с открытым исходным кодом. У него нет страницы, а просто перейдите на страницу загрузки. Вам не нужно заполнять форму, просто нажмите на меня, чтобы загрузить. – Cody Harlow 5 August 2010 в 00:27
  • 3
    похоже, с открытым исходным кодом не менее 2018. github.com/quartz-scheduler/quartz – dogmatic69 18 February 2018 в 20:39

Вы можете использовать GNU-пакет mcron, альтернативу «Vixie cron».

http://www.gnu.org/software/mcron/manual/mcron.html#Top

«Может быть легко разрешено задавать более тонкие временные точки, то есть секунды. В принципе это может быть увеличено до микросекунд, но это не реализовано».

7
ответ дан 24 July 2018 в 19:55

Просто используйте цикл:

while true ; do ./your-script & sleep 5; done

Это запустит ваш скрипт в качестве фонового задания, спящий на 5 секунд, затем снова запустится. Вы можете использовать Ctrl-C, чтобы прервать его, или использовать любое другое условие вместо true, например. ! test -f /tmp/stop-my-script только для цикла, пока файл /tmp/stop-my-script не существует.

27
ответ дан 24 July 2018 в 19:55
  • 1
    Если я включаю амперсанд, он говорит bash: syntax error near unexpected token ';', поэтому я его вынул. У меня есть bash 4.3.11. Моя команда работает быстро, так что это нормально, если она работает на переднем плане. – Tyler Collier 4 December 2016 в 08:48
  • 2
    @EliahKagan FWIW, он работает на Zsh (без синтаксической ошибки), но это действительно не нужно. Спасибо за редактирование! – blueyed 12 January 2017 в 15:43

Используйте cacti для мониторинга маршрутизатора и коммутатора, но Cron разрешает использовать как минимум одну минуту, поэтому, если один порт / устройство выключен, предупреждение не появится до двух минут.

2
ответ дан 24 July 2018 в 19:55

У вас может быть задание cron запускать скрипт каждую минуту, которая запускает 12 фоновых процессов:

* * * * * ~/dostuff.sh

dostuff.sh:

(sleep 5 && /path/to/task) & (sleep 10 && /path/to/task) & (sleep 15 && /path/to/task) & (sleep 20 && /path/to/task) & (sleep 25 && /path/to/task) & (sleep 30 && /path/to/task) & (sleep 35 && /path/to/task) & (sleep 40 && /path/to/task) & (sleep 45 && /path/to/task) & (sleep 50 && /path/to/task) & (sleep 55 && /path/to/task) & (sleep 60 && /path/to/task) & [ ! d2]

Мой вопрос, однако, заключается в том, что вы можете делать с EARTH каждые 5 секунд?

26
ответ дан 24 July 2018 в 19:55
  • 1
    What on EARTH - статистика, сбор мусора, синхронизация файлов, статус онлайн, вы называете это. – ruX 17 July 2016 в 02:53
  • 2
    Ссылка на внешний API для данных почти в реальном времени. Запуск запроса каждые 5 секунд намного лучше, чем при каждом просмотре страницы. – Sergey Kudriavtsev 19 July 2016 в 00:41
  • 3
    Что делать, если crontab дважды выполняет файл dostuff.sh? Например, на 55-й секунде скрипт выполняется, но еще не закончен, но cron снова вызывает сценарий, что произойдет? – TomSawyer 14 September 2016 в 12:16
  • 4
    ЭТО ПЛОХО! Он потенциально запускает скрипт более одного раза за раз (если это займет больше 5 секунд), что может привести к состоянию гонки в любых (даже временных) файлах, к которым обращаются. НЕ ДЕЛАЙТЕ ЭТО, если делать то же самое дважды в одно и то же время может вызвать проблему! (И что обычно будет!) – Nonny Moose 10 January 2018 в 05:52

У вас может быть задание cron запускать скрипт каждую минуту, которая запускает 12 фоновых процессов:

* * * * * ~/dostuff.sh

dostuff.sh:

(sleep 5 && /path/to/task) &
(sleep 10 && /path/to/task) &
(sleep 15 && /path/to/task) &
(sleep 20 && /path/to/task) &
(sleep 25 && /path/to/task) &
(sleep 30 && /path/to/task) &
(sleep 35 && /path/to/task) &
(sleep 40 && /path/to/task) &
(sleep 45 && /path/to/task) &
(sleep 50 && /path/to/task) &
(sleep 55 && /path/to/task) &
(sleep 60 && /path/to/task) &

Мой вопрос, однако, заключается в Что вы можете делать с EARTH , которое должно выполняться каждые 5 секунд?

26
ответ дан 31 July 2018 в 22:58

Я сделал это очень успешно (и конечный результат запускает недели за раз, пока машина не перезагружена). Что касается того, что я делал прямо сейчас, обновляю информацию и помещаю ее в кеш - обновление каждые 10 секунд.

#!/bin/sh

SLEEP=5

# do stuff
sleep $SLEEP

# do stuff
sleep $SLEEP

# do stuff
sleep $SLEEP

# do stuff
sleep $SLEEP

# echo and restart...
exec $0

«exec $ 0» перезапускает скрипт, но заменяет исполняемый скрипт. Его можно начать с линии crontab @reboot.

1
ответ дан 3 August 2018 в 20:13

Минимальная конфигурация в cron - минуты, вы не можете установить ее в течение 5 секунд. Вы можете использовать кварц, который позволяет секунд. http://www.quartz-scheduler.org/docs/tutorials/crontrigger.html

2
ответ дан 5 August 2018 в 04:58

Вы можете использовать пакет GNU mcron, альтернативу «Vixie cron».

http://www.gnu.org/software/mcron/manual/mcron.html#Top

«Можно легко разрешить задавать более тонкие временные точки, то есть секунды. В принципе это можно было бы продлить до микросекунды, но это не реализовано».

7
ответ дан 5 August 2018 в 04:58

Я сделал это очень успешно (и конечный результат запускает недели за раз, пока машина не перезагружена). Что касается того, что я делал прямо сейчас, обновляю информацию и помещаю ее в кеш - обновление каждые 10 секунд.

#!/bin/sh

SLEEP=5

# do stuff
sleep $SLEEP

# do stuff
sleep $SLEEP

# do stuff
sleep $SLEEP

# do stuff
sleep $SLEEP

# echo and restart...
exec $0

«exec $ 0» перезапускает скрипт, но заменяет исполняемый скрипт. Его можно начать с линии crontab @reboot.

1
ответ дан 5 August 2018 в 04:58

Я сделал это очень успешно (и конечный результат запускает недели за раз, пока машина не перезагружена). Что касается того, что я делал прямо сейчас, обновляю информацию и помещаю ее в кеш - обновление каждые 10 секунд.

#!/bin/sh

SLEEP=5

# do stuff
sleep $SLEEP

# do stuff
sleep $SLEEP

# do stuff
sleep $SLEEP

# do stuff
sleep $SLEEP

# echo and restart...
exec $0

«exec $ 0» перезапускает скрипт, но заменяет исполняемый скрипт. Его можно начать с линии crontab @reboot.

1
ответ дан 6 August 2018 в 22:04

Другие вопросы по тегам:

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