Uploaded image for project: 'Puppet'
  1. Puppet
  2. PUP-1802

Puppet should execute ruby.exe not cmd.exe when running as a windows service



    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • PUP 3.8.0, PUP 4.1.0
    • None
    • 2
    • Platform Client 2014-11-26, Platform Client 2014-12-17


      Currently, when puppet runs as a service on windows, it executes a batch script (in a cmd.exe process), which then invokes ruby.exe. The child process then calls back into the service control manager, and that causes the service control manager to issue a warning in the application event log that a different process registered as a service than the one it launched.

      Ideally, the service control manager should launch ruby.exe directly along with whatever arguments are necessary to do so.

      If the puppet service is running when a new version is installed, or existing version repaired, Windows Installer may issue the warning, "The setup must update files or services that cannot be updated while the system is running. If you choose to continue, a reboot will be required to complete the setup." I believe this occurs because ruby.exe is not the executable associated with the service, so the installer just thinks the file is in use. This issue can be triggered easily by setting runinterval=5, e.g. run puppet every 5 seconds, and then trying to upgrade/repair.


        Issue Links



              Unassigned Unassigned
              josh Josh Cooper
              0 Vote for this issue
              4 Start watching this issue



                Zendesk Support