Re: Вот как бы этому вашему systemd объяснить...
On Wed, 25 Oct 2017 12:56:29 +0300
Alex Kicelew <arkoort@gmail.com> wrote:
> >
> > Вот что надо туда дописать, чтобы systemd понимал, что если процесс
> > vws autostart завершился с нулевым кодом и не оставил ни одного
> > потомка, то так и надо, и сервис active, а ExecStop при покладании
> > системы надо выполнять?
> >
>
> Не уверен, что правильно понял задачу (недостаточно подробно описаны
> возможные кейзы), но если понял правильно, то:
В результате старта сервиса могут быть порождены процессы-потомки, а
могут быть и не порождены. Поэтому я немножко не уверен, что oneshot
это то, что надо.
Далее, в процессе работы загруженной системы могут быть запущены
процессы, которые с точки зрения systemd не имеют отношения к данному
сервису, а с моей - имеют. И команда, запускаемая по ExecStop их
корректно завершит.
Поэтому команда ExecStop должна выполняться независимо от того были ли
ли запущены в результате ExecStart долгоживущие процессы. Но если они
были, то обращаться с ними надо как в случае Type=forking
> 1) чтобы процесс считался запущенным при завершении ExecStart с
В данном случае, наверное, "сервис считался запущенным", а не
"процесс". То есть с моей точки зрения это выглядит как "сервис
считается запущенным, даже если ни одного рабочего процесса не создано".
> нулевым кодом вне зависимости от того, породились потомки, или нет, и
> при этом не считался запущенным, если ExecStart вышел с ненулевым
> кодом: Type=oneshot
> RemainAfterExit=yes
>
> 2) если процесс в результате 1) считается запущенным, то ему будет
> выдан ExecStop
>
Reply to: