open-nomad/website/source/guides/install/windows-service.html.md
Charlie Voiselle 835831a3d8 Added service wrapper code (#6220)
This is the basic code to add the Windows Service Manager hooks to Nomad.

Includes vendoring golang.org/x/sys/windows/svc and added Docs:
* guide for installing as a windows service.
* configuration for logging to file from PR #6429
2019-11-11 15:16:07 -05:00

2.6 KiB

layout page_title sidebar_current description
guides Nomad as a Windows Service guides-install-windows-service Discusses how to register and run Nomad as a native Windows service.

Installing Nomad as a Windows service

Nomad can be run as a native Windows service. In order to do this, you will need to register the Nomad application with the Windows Service Control Manager using sc.exe, configure Nomad to log to a file, and then start the Nomad service.

~> Note: These steps should be run in a PowerShell session with Administrator capabilities.

Register Nomad with Windows

Download the Nomad binary for your architecture.

Use the sc.exe command to create a Service named "Nomad". The binPath argument should include the fully qualified path to the Nomad executable and any arguments to the nomad command: agent, -config, etc.

sc.exe create "Nomad" binPath="«full path to nomad.exe» agent -config=«path to config file or directory»" start= auto
[SC] CreateService SUCCESS

If you receive a success message, your service is registered with the service manager.

If you get an error, please verify the path to the binary and check the arguments, by running the contents of binPath directly in a PowerShell session and observing the results.

Configure Nomad to log to file

Because Windows services run non-interactively and Nomad does not log to the Windows Event Viewer, you will need to configure file-based logging in Nomad.

To do this, set the log_file argument in your Nomad configuration file or in the binPath argument of the sc.exe command used to register the service.

Start the Nomad service

You have two ways to start the service.

  • Go to the Windows Service Manager, and look for Nomad in the service name column. Click the Start button to start the service.

  • Using the sc.exe command:

    sc.exe start "Nomad"
    
    SERVICE_NAME: Nomad
          TYPE               : 10  WIN32_OWN_PROCESS
          STATE              : 4  RUNNING
                                  (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
          WIN32_EXIT_CODE    : 0  (0x0)
          SERVICE_EXIT_CODE  : 0  (0x0)
          CHECKPOINT         : 0x0
          WAIT_HINT          : 0x0
          PID                : 8008
          FLAGS              :
    

The service automatically starts up during/after boot, so you don't need to launch Nomad from the command-line again.