in reply to Win32 - Dependant services

Have you tried?

P:\test>perl -e"system 'net stop mysql'" The MySQL service is stopping. The MySQL service was stopped successfully. P:\test>perl -e"system 'net start mysql'" The MySQL service is starting. The MySQL service was started successfully.

Update: As a footnote. The NET STOP command is documented to take care of stopping and starting dependant services:

The syntax of this command is: NET STOP service NET STOP stops Windows services. Stopping a service cancels any network connections the service is using. Also, some services are dependent on others. Stopping one service can stop others. Some services cannot be stopped. service May be one of the following services: ALERTER BROWSER CLIENT SERVICE FOR NETWARE CLIPBOOK DHCP CLIENT FILE REPLICATION MESSENGER NET LOGON NT LM SECURITY SUPPORT PROVIDER REMOTE ACCESS CONNECTION MANAGER ROUTING AND REMOTE ACCESS RPCLOCATOR SCHEDULE SERVER SPOOLER TCP/IP NETBIOS HELPER SERVICE UPS WORKSTATION NET STOP can also stop services not provided with Windows.

The 3rd paragraph is the relevant one. See the MS docs for what determines whether a service is stoppable or not and what constitutes dependance.

There seems very little logic in trying to re-create the logic built into these system commands when they are readily usable from Perl?


Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"Think for yourself!" - Abigail
"Memory, processor, disk in that order on the hardware side. Algorithm, algorithm, algorithm on the code side." - tachyon

Replies are listed 'Best First'.
Re^2: Win32 - Dependant services
by Smaug (Pilgrim) on Oct 22, 2004 at 06:50 UTC
    Hi
    Thanks for your suggestion. However as I said earlier, this service has dependants. If you do as you have suggested above, (but add the /Y switch to answer yes to stopping dependant services) it will stop, but then how would you know what to start again?
    Thanks very much to everybody though for your help. We've decided to use the code I posted earlier, and look into using the API as suggested.
    Cheers.

      At least in theory, net start mysql /Y should be able to use the same dependancy logic to re-start those dependant services.

      It certainly used to be able to so under OS/2 when I was developing device drivers. Setting up the dependancy chain for complex drivers, like high level multi-media drivers was a pain, but once set it worked very well.

      I have had little or nothing to do with this under Win32, and don't have any such set of dependant services on this machine to experiment with, so I apologise if the idea was a bum steer.


      Examine what is said, not who speaks.
      "Efficiency is intelligent laziness." -David Dunham
      "Think for yourself!" - Abigail
      "Memory, processor, disk in that order on the hardware side. Algorithm, algorithm, algorithm on the code side." - tachyon