А после перезагрузки системы?
Управление циклами (сервисами)
Модератор: immortal
- andrey040670
- Сообщения: 459
- Зарегистрирован: Пн июл 31, 2017 10:00 pm
- Благодарил (а): 161 раз
- Поблагодарили: 85 раз
Re: Управление циклами (сервисами)
MJD alfa: Khadas VIM1 Ubuntu 18.04.2 LTS bionic Linux 4.9.40 #2 SMP PREEMPT Tue Oct 30 15:47:54 CST 2018 aarch64 GNU/Linux
MJD alfa: Rpi 3B Debian 11 (bullseye) Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
MJD alfa: Rpi 3B Debian 11 (bullseye) Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
-
- Сообщения: 31
- Зарегистрирован: Пн янв 16, 2017 11:02 am
- Благодарил (а): 2 раза
- Поблагодарили: 0
Re: Управление циклами (сервисами)
Все то-же самое.
- andrey040670
- Сообщения: 459
- Зарегистрирован: Пн июл 31, 2017 10:00 pm
- Благодарил (а): 161 раз
- Поблагодарили: 85 раз
Re: Управление циклами (сервисами)
Разрешить автозагрузку:
sudo systemctl enable majordomo
sudo systemctl enable majordomo
MJD alfa: Khadas VIM1 Ubuntu 18.04.2 LTS bionic Linux 4.9.40 #2 SMP PREEMPT Tue Oct 30 15:47:54 CST 2018 aarch64 GNU/Linux
MJD alfa: Rpi 3B Debian 11 (bullseye) Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
MJD alfa: Rpi 3B Debian 11 (bullseye) Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
-
- Сообщения: 284
- Зарегистрирован: Сб ноя 24, 2012 11:47 am
- Благодарил (а): 29 раз
- Поблагодарили: 28 раз
Re: Управление циклами (сервисами)
Всем добрый день!
Не нашел в ветке и в поиске. Может есть способ получить статус цикла через getProperty или иным способом, если цикл находится в состоянии "не отвечает"?
У меня вентустановка Komfovent работает по modbus и иногда, вероятно, происходит зависание обмена. В результате цикл modbus переходит в состояние "не отвечает", хочу сделать перезапуск цикла из кода при наступлении такого события.
Не нашел в ветке и в поиске. Может есть способ получить статус цикла через getProperty или иным способом, если цикл находится в состоянии "не отвечает"?
У меня вентустановка Komfovent работает по modbus и иногда, вероятно, происходит зависание обмена. В результате цикл modbus переходит в состояние "не отвечает", хочу сделать перезапуск цикла из кода при наступлении такого события.
-
- Сообщения: 259
- Зарегистрирован: Сб май 11, 2019 6:35 pm
- Откуда: Иркутск
- Благодарил (а): 16 раз
- Поблагодарили: 59 раз
Re: Управление циклами (сервисами)
Первое сообщение данной темы читали?
if(!gg('cycle_modbusRun')) setGlobal('cycle_modbusControl','start');
Или
if(!gg('cycle_modbusRun')) setGlobal('cycle_modbusControl','restart');
if(!gg('cycle_modbusRun')) setGlobal('cycle_modbusControl','start');
Или
if(!gg('cycle_modbusRun')) setGlobal('cycle_modbusControl','restart');
- xor
- Сообщения: 2040
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: Управление циклами (сервисами)
и посмотрите систем_стейтс. там в методе System.checkState был встроен механизм оперативного перезапуска цикловdenis писал(а): ↑Пн окт 09, 2023 9:06 amВсем добрый день!
Не нашел в ветке и в поиске. Может есть способ получить статус цикла через getProperty или иным способом, если цикл находится в состоянии "не отвечает"?
У меня вентустановка Komfovent работает по modbus и иногда, вероятно, происходит зависание обмена. В результате цикл modbus переходит в состояние "не отвечает", хочу сделать перезапуск цикла из кода при наступлении такого события.
Код: Выделить всё
$cycles = array('main'=>'главный цикл','execs'=>'цикл запуска команд','scheduler'=>'цикл планировщика');
foreach($cycles as $k=>$v) {
$tm = gg('cycle_'.$k.'Run');
if ($tm && time()-$tm > 2 * 60) {
$red_state = 1;
$details[] = $v." остановлен.";
sg('cycle_'.$k.'Run','');
sg('cycle_'.$k.'Control','restart');
}
}
win10 connect https://connect.smartliving.ru/profile/303
-
- Сообщения: 284
- Зарегистрирован: Сб ноя 24, 2012 11:47 am
- Благодарил (а): 29 раз
- Поблагодарили: 28 раз
Re: Управление циклами (сервисами)
Первое сообщение читал, как я понял этот код получает состояние цикла "остановлен". В моем же случае цикл не останавливается, соответственно приведенный код не сработает, т.к. цикл работает, у него состояние "работает не отвечает".
-
- Сообщения: 284
- Зарегистрирован: Сб ноя 24, 2012 11:47 am
- Благодарил (а): 29 раз
- Поблагодарили: 28 раз
Re: Управление циклами (сервисами)
Вопрос: состояние цикла "остановлен" и состояние цикла "работает не отвечает" аналогичны?xor писал(а): ↑Пн окт 09, 2023 4:06 pmи посмотрите систем_стейтс. там в методе System.checkState был встроен механизм оперативного перезапуска цикловdenis писал(а): ↑Пн окт 09, 2023 9:06 amВсем добрый день!
Не нашел в ветке и в поиске. Может есть способ получить статус цикла через getProperty или иным способом, если цикл находится в состоянии "не отвечает"?
У меня вентустановка Komfovent работает по modbus и иногда, вероятно, происходит зависание обмена. В результате цикл modbus переходит в состояние "не отвечает", хочу сделать перезапуск цикла из кода при наступлении такого события.
Автоматический перезапуск не происходит. В таком состоянии цикл сегодня провисел примерно час, затем заработал, вероятно таймаут запроса modbus закончился.
Есть идея как сделать "костыль", но хотелось получить состояние цикла, а после уже решать, что с ним делать.
- xor
- Сообщения: 2040
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: Управление циклами (сервисами)
не надо костылейdenis писал(а): ↑Пн окт 09, 2023 9:00 pmВопрос: состояние цикла "остановлен" и состояние цикла "работает не отвечает" аналогичны?xor писал(а): ↑Пн окт 09, 2023 4:06 pmи посмотрите систем_стейтс. там в методе System.checkState был встроен механизм оперативного перезапуска цикловdenis писал(а): ↑Пн окт 09, 2023 9:06 amВсем добрый день!
Не нашел в ветке и в поиске. Может есть способ получить статус цикла через getProperty или иным способом, если цикл находится в состоянии "не отвечает"?
У меня вентустановка Komfovent работает по modbus и иногда, вероятно, происходит зависание обмена. В результате цикл modbus переходит в состояние "не отвечает", хочу сделать перезапуск цикла из кода при наступлении такого события.
Автоматический перезапуск не происходит. В таком состоянии цикл сегодня провисел примерно час, затем заработал, вероятно таймаут запроса modbus закончился.
Есть идея как сделать "костыль", но хотелось получить состояние цикла, а после уже решать, что с ним делать.
вы через гг('cycle_name'.'Run') получаете время его последнего ответа, вам решать, как это интерпретировать. у меня если там пусто - остановлено, если время отклика цикла давнишнее - не отвечает (за положенное время)
управление поведением через свойство cycle_name'.'Control' записью туда текста:
start, stop, restart
если остановлен, то старт
если не отвечает - рестарт
если контроль цикла через свойство не работает у вас - разбирайтесь с системой
- Рейтинг: 1.16%
win10 connect https://connect.smartliving.ru/profile/303