oikool has asked for the wisdom of the Perl Monks concerning the following question:

I want to write this in perl (/etc/init.d/ntpd start) and grep the statusntpd status when its stopped.

system ("/etc/init.d/ntpd start");

Replies are listed 'Best First'.
Re: to write /etc/init.d/ntpd start
by hippo (Archbishop) on Feb 20, 2014 at 11:20 UTC

    To study the output (STDOUT or STDERR) from a system command use backticks or qx

    To study the return value of a system command use system

Re: to write /etc/init.d/ntpd start
by gri6507 (Deacon) on Feb 20, 2014 at 14:12 UTC
    You may also want to look at IPC::Run, which is a module that allows you much more control over STDOUT, STDERR, return codes, and much more
Re: to write /etc/init.d/ntpd start
by karlgoethebier (Abbot) on Feb 20, 2014 at 19:48 UTC
Re: to write /etc/init.d/ntpd start
by locked_user sundialsvc4 (Abbot) on Feb 20, 2014 at 15:22 UTC
    Consider also using Nagios, which can handle software events ... or, simply configure this service to auto-restart.   A “one-of-a-kind” Perl script ought not be required to get this done.
      "Consider also using Nagios..."

      No doubt, Nagios is good stuff, but i wonder how this hint is related to the OP.

      What oikool needs is $? >> 8, isn't it?

      Without $? >> 8 he can't neither monitor that service nor restart it.

      "...simply configure this service to auto-restart. A “one-of-a-kind” Perl script ought not be required to get this done."

      Nope. Nagios can't be simply configured to restart a service. One needs to write an event handler.

      You need two scripts to accomplish this: one for the service check and one for the event handler.

      And setting up a robust solution for this is still a bit tricky. See State Types a.s.o.

      Best regards, Karl

      «The Crux of the Biscuit is the Apostrophe»