This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: cygrunsrv - services enters stopped state if underlying program exits or is killed - doesn't auto restart


2015-01-28 16:37 GMT+01:00 Corinna Vinschen <corinna-cygwin@cygwin.com>:
> On Jan 28 15:42, Kizito Porta Balanyà wrote:
>> 2015-01-28 12:55 GMT+01:00 Corinna Vinschen <corinna-cygwin@cygwin.com>:
>> > On Jan 28 11:18, Corinna Vinschen wrote:
>> >> On Jan 27 15:02, Cary Lewis wrote:
>> >> > On Tue, Jan 27, 2015 at 4:09 AM, Corinna Vinschen
>> >> > --neverexits works, but not if the program that cygrunsrv starts is
>> >> > stopped with a kill -9 signal. Perhaps the -9 signal propagates to the
>> >> > cygrunsrv.exe program?
>> >>
>> >> Hmm, yes.  Cygrunsrv evaluates how the service process ended, and only
>> >> if it exited the neverexits logic comes into play.  If it ended due to
>> >> a signal, it does nothing.
>> >>
>> >> This is unfortunate because it diminishes the usefulness of --neverexits.
>> >> I could patch cygrunsrv to do this:
>> >>
>> >>   If the service exited due to a signal, and if that signal is not the
>> >>   defined termination or shutdown signal (default SIGTERM for both),
>> >>   and if --neverexits has been defined, then performas the neverexits
>> >>   action.
>> >>
>> >> Does that sound ok?
>>
>> I would say that this should be the default behavior:
>>
>> If the signal is SIGTERM and the service is configured to restart the
>> program, then restart the program.
>
> No.  SIGTERM (rather: the defined termination signal) is send
> explicitely from cygrunsrv to the service process to stop the service.
> If this is handled like --neverexits, it would be impossible to stop a
> service manually.  The neverexits case should only cover the cases of
> exiting as a result of an unexpected signal (SIGSEGV, etc).

I explained it bad. English is not my "default" language. :)

What I mean is:

   - If the automatic restart of the service is defined by the
administrator, the service should restart by default.
   - So, It shouldn't be necessary to register the service with --neverexits.

    - But if the administrator defines the autorestart option, the
service should be aware of it.

I hope you understand me.

Thanks .


>
>> So, --neverxits should be the default behaviour of cygrunsrv , so
>> --neverexists shouldn't exist as an option. :) But perhaps I'm wrong
>> and I don't understand completely the problem.
>
> I disagree.  Automatic restart of services is not desired by default.
> It's a per-service, administrators choice.
>
>
> Corinna
>
> --
> Corinna Vinschen                  Please, send mails regarding Cygwin to
> Cygwin Maintainer                 cygwin AT cygwin DOT com
> Red Hat

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]