Russian Qt Forum

Qt => Многопоточное программирование, процессы => Тема начата: sergek от Июль 20, 2017, 16:01



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

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

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



Название: Re: Перезапуск процесса
Отправлено: qate от Июль 20, 2017, 23:34
написать bash скрипт - вышел сервер кодом 123 (после скачки всего нового) - значит обновление
другие коды также можно обработать


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


Название: Re: Перезапуск процесса
Отправлено: qate от Июль 21, 2017, 20:09
я  имел ввиду, что изначально, при старте системы, стартует скрипт, который запускает приложение
если приложение завершается, то скритп анализирует код возврата или иные флаги (файлы), и выполняет действия
затем опять идет запуск процесса
таким образом и падения и обновления могут обрабатываться едино


Название: Re: Перезапуск процесса
Отправлено: sergek от Июль 21, 2017, 21:01
Мысль интересная, надо ее подумать ;) Спасибо.