On 2014/06/25 13:04, Stuart Henderson wrote:
> On 2014/06/24 20:56, b...@tilderoot.com wrote:
> > The nsd rc script returns an exit code other than 1 when nsd is
> > not running. A problem arises when using a configuration management
> > (CM) system such as ansible to control system services. With this
> > non-standard exit code, the CM system cannot determine if the service
> > is running or not. The nsd rc script runs 'nsd-control status', which
> > documentation states will exit 3 when nsd is not running. I'd argue that
> > the rc script should catch that, and instead exit 1.
> 
> If it was just for a CM system I'd argue that it should probably be
> more flexible, but it also goes against the documentation in rc.subr(8),
> so I think this should be fixed.
> 
> I'll commit this soon unless there are any objections.
> 
> > Index: nsd
> > ===================================================================
> > RCS file: /cvs/src/etc/rc.d/nsd,v
> > retrieving revision 1.7
> > diff -u -p -u -r1.7 nsd
> > --- nsd 7 May 2014 02:46:05 -0000       1.7
> > +++ nsd 25 Jun 2014 03:53:50 -0000
> > @ -25,6 +25,12 @@ rc_start() {
> > 
> >  rc_check() {
> >         ${daemon} ${daemon_flags} status
> > +       ret=$?
> > +       if [[ $ret != 0 ]]; then
> > +               return 1
> > +       else
> > +               return 0
> > +       fi
> >  }
> > 
> >  rc_reload() {
> > 
> 

Actually, no need for the if; this is simpler:

Index: nsd
===================================================================
RCS file: /cvs/src/etc/rc.d/nsd,v
retrieving revision 1.7
diff -u -p -r1.7 nsd
--- nsd 7 May 2014 02:46:05 -0000       1.7
+++ nsd 25 Jun 2014 12:06:29 -0000
@@ -24,7 +24,7 @@ rc_start() {
 }
 
 rc_check() {
-       ${daemon} ${daemon_flags} status
+       ${daemon} ${daemon_flags} status || exit 1
 }
 
 rc_reload() {


Reply via email to