Russian Qt Forum
Апрель 19, 2024, 14:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Перезапуск процесса  (Прочитано 4090 раз)
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 870


Мы должны приносить пользу людям.


Просмотр профиля
« : Июль 20, 2017, 16:01 »

Коллеги,
для обновления ПО требуется перезапустить веб-сервер на малине под Linux. Обновление осуществляется через сам веб-сервер, который закачивает на сервер обновляемые модули, заменяет свой исполняемый файл (он один), после чего через QProcess запускает вспомогательный процесс, который, в свою очередь, останавливает веб-сервер и тут же его запускает.

На этом задача вспомогательного процесса заканчивается, но он теряет своего родителя. Вроде бы, он должен превратиться в "зомби", однако некоторое время висит и завершается. Наверное, его прибивает init.

Как по-вашему, такой способ перезапуска можно оставить или нужно сделать как-то по-другому?
Что-то не приходит в голову другая схема. Разве что сделать вспомогательный процесс демоном - но тут, наверное, появятся свои заморочки. Или перезагружать малину, но у меня не получилось (я спрашивал тут http://www.prog.org.ru/topic_31471_0.html).

Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
qate
Супер
******
Offline Offline

Сообщений: 1175


Просмотр профиля
« Ответ #1 : Июль 20, 2017, 23:34 »

написать bash скрипт - вышел сервер кодом 123 (после скачки всего нового) - значит обновление
другие коды также можно обработать
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 870


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #2 : Июль 21, 2017, 09:10 »

Не понял, перезапуск выполнять через bash-скрипт? Но сам скрипт также будет запускаться через QProcess - что с ним будет, когда запускающий процесс умрет?
UPD. Вроде, если перевести задание в фон и отвязать от запускающего процесса, должно получиться. Я правильно понял?
Все равно, спасибо за направление Подмигивающий
« Последнее редактирование: Июль 21, 2017, 11:11 от sergek » Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
qate
Супер
******
Offline Offline

Сообщений: 1175


Просмотр профиля
« Ответ #3 : Июль 21, 2017, 20:09 »

я  имел ввиду, что изначально, при старте системы, стартует скрипт, который запускает приложение
если приложение завершается, то скритп анализирует код возврата или иные флаги (файлы), и выполняет действия
затем опять идет запуск процесса
таким образом и падения и обновления могут обрабатываться едино
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 870


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #4 : Июль 21, 2017, 21:01 »

Мысль интересная, надо ее подумать Подмигивающий Спасибо.
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 22.