|
Вопросы о Trim5 Работа и применение контроллеров с сенсорной панелью Trim5. |
|
Опции темы | Поиск в этой теме |
04.04.2018, 16:50 | #1 |
Senior Member
Регистрация: Dec 2012
Сообщения: 164
Благодарил(а): 5 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Как отследить работу своей программы
Сделал контроль работы программы на Си. Трим покажет предупреждение, если программа зависнет или "вылетит". А можно еще что-то сделать, например, перезагрузить программу из лоджика или перезагрузить весь трим?
|
04.04.2018, 16:51 | #2 |
Уволен из Сегнетикс
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: VirtualBox Linux. Подключение к трим
Надо писать отдельного демона, который будет следить за программой и перезапускать.
__________________ В сегнетиксе не работаю с самого начала 2019 года. |
04.04.2018, 17:12 | #3 |
Senior Member
Регистрация: Dec 2012
Сообщения: 164
Благодарил(а): 5 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: VirtualBox Linux. Подключение к трим
|
04.04.2018, 17:18 | #4 |
Уволен из Сегнетикс
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: VirtualBox Linux. Подключение к трим
Конечно есть, в гугле множество вариантов. Линус существует не первый день.
Штатный - только SMLogix. Все внедрения в работу программ и операционной системы - это всё на ваше усмотрение и под вашу ответственность. __________________ В сегнетиксе не работаю с самого начала 2019 года. |
27.04.2018, 19:09 | #5 |
Senior Member
Регистрация: Dec 2012
Сообщения: 164
Благодарил(а): 5 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Как отследить работу своей программы
Добавил в конец start.after
while true; do ./my_scripts_reboot; sleep 10; done; рядом лежит скрипт my_scripts_reboot, который выполняет проверку и перезапускает, если программа не работает. Проверил на железе - все отрабатывает правильно. Правильный алгоритм действий? |
27.04.2018, 19:25 | #6 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 112
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Как отследить работу своей программы
Цитата:
Это логически более правильно. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
28.04.2018, 11:02 | #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 года. |
28.04.2018, 14:14 | #8 | |
Senior Member
Регистрация: Dec 2012
Сообщения: 164
Благодарил(а): 5 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Как отследить работу своей программы
Цитата:
|
|