![]() |
![]() ![]() |
|
Вопросы о Trim5 Работа и применение контроллеров с сенсорной панелью Trim5. |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
![]() |
#1 |
Senior Member
Регистрация: Dec 2012
Сообщения: 164
Благодарил(а): 5 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
![]()
Сделал контроль работы программы на Си. Трим покажет предупреждение, если программа зависнет или "вылетит". А можно еще что-то сделать, например, перезагрузить программу из лоджика или перезагрузить весь трим?
|
![]() |
![]() |
![]() |
#2 |
Уволен из Сегнетикс
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
![]()
Надо писать отдельного демона, который будет следить за программой и перезапускать.
__________________ В сегнетиксе не работаю с самого начала 2019 года. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Регистрация: Dec 2012
Сообщения: 164
Благодарил(а): 5 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
![]() |
![]() |
![]() |
![]() |
#4 |
Уволен из Сегнетикс
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
![]()
Конечно есть, в гугле множество вариантов. Линус существует не первый день.
Штатный - только SMLogix. Все внедрения в работу программ и операционной системы - это всё на ваше усмотрение и под вашу ответственность. __________________ В сегнетиксе не работаю с самого начала 2019 года. |
![]() |
![]() |
![]() |
#5 |
Senior Member
Регистрация: Dec 2012
Сообщения: 164
Благодарил(а): 5 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
![]()
Добавил в конец start.after
while true; do ./my_scripts_reboot; sleep 10; done; рядом лежит скрипт my_scripts_reboot, который выполняет проверку и перезапускает, если программа не работает. Проверил на железе - все отрабатывает правильно. Правильный алгоритм действий? |
![]() |
![]() |
![]() |
#6 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 011
Благодарил(а): 12 раз(а)
Поблагодарили:
585 раз(а) в 534 сообщениях
|
![]() Это логически более правильно. __________________ Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#7 |
Уволен из Сегнетикс
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
![]()
Я когда-то делал на с++ такие вещи. Вот вам код, тут всё просто
Код:
#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <string> #include <stdio.h> #include <stdlib.h> #include <cstring> #include <sys/time.h> #include <ctime> #include <locale.h> #include <fstream> #define timesec 10 #define timensec 1000 //loop задержка цикла #define marx_num 3 // Количество программ using namespace std; #pragma GCC diagnostic ignored "-Wwrite-strings" int main(int argc, char *argv[]){ struct timespec tw = {timesec,timensec*100000}; struct timespec tr; // Здесь указываются названия программ std::string name[marx_num] = {"my_app1", "my_app2","my_app3"}; std::string temp; for (;;){ nanosleep (&tw, &tr); for (int i = 0; i < marx_num; ++i) { temp = "pidof " + name[i]; if (system(temp.c_str()) > 0 ){ printf("%s не работает, перезапуск\n", name[i].c_str()); temp = "nohup /projects/workdir/" + name[i] + "/" + name[i] + "&"; system(temp.c_str()); } else printf("%s работает\n", name[i].c_str()); } } } В рабочей версии нужно закомментить выводы в консоль printf. Саму эту программу можно запускать вместо программ. Она убедится, что они не запущены и запустит их. Ещё можно так же убедиться, что они работают и, например, завершить их. __________________ В сегнетиксе не работаю с самого начала 2019 года. |
![]() |
![]() |
![]() |
#8 |
Senior Member
Регистрация: Dec 2012
Сообщения: 164
Благодарил(а): 5 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
![]() |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
SM CONNECT (Подробная инструкция в картинках как настроить) | alekseyeve | SMConnect & SMConfig | 216 | 04.05.2023 12:26 |
Как узнать IP адрес из программы в панели TRIM5 | slt | Вопросы о программировании | 11 | 01.11.2019 17:52 |
как изменить работу водяного калорифера из "всегда" в "только зимой" (решено) | Goscha | SMConstructor (вентиляция) | 2 | 22.05.2017 00:23 |
Аварии по питанию останавливают работу контура. Как избежать? (решено) | sensei | SMConstructor (теплопункты) | 18 | 12.11.2014 16:57 |
Как оценить время выполнения программы в контроллере? | Arsie | ЧаВо - Часто задаваемые Вопросы | 0 | 04.10.2013 16:51 |