On this page
win_nssm - NSSM - the Non-Sucking Service Manager
New in version 2.0.
Synopsis
- nssm is a service helper which doesn’t suck. See https://nssm.cc/ for more information.
 
Requirements
The below requirements are needed on the host that executes this module.
- nssm >= 2.24.0 # (install via win_chocolatey) 
win_chocolatey: name=nssm 
Parameters
| Parameter | Choices/Defaults | Comments | 
|---|---|---|
| app_parameters | 
        
        A string representing a dictionary of parameters to be passed to the application when it starts.
        
       
        Use either this or  app_parameters_free_form, not both.
        | 
     |
| app_parameters_free_form  
        (added in 2.3.0)
         | 
      
        
        Single string of parameters to be passed to the service.
        
       
        Use either this or  app_parameters, not both.
        | 
     |
| application | 
        
        The application binary to run as a service
        
       
        Specify this whenever the service may need to be installed (state: present, started, stopped, restarted)
        
       
        Note that the application name must look like the following, if the directory includes spaces:
        
       
        nssm install service "C:\\Program Files\\app.exe\\" "C:\\Path with spaces\\"
        
       
        See commit 0b386fc1984ab74ee59b7bed14b7e8f57212c22b in the nssm.git project for more info: https://git.nssm.cc/?p=nssm.git;a=commit;h=0b386fc1984ab74ee59b7bed14b7e8f57212c22b
         | 
     |
| dependencies | 
        
        Service dependencies that has to be started to trigger startup, separated by comma.
         | 
     |
| name  
        required
         | 
      
        
        Name of the service to operate on.
         | 
     |
| password | 
        
        Password to be used for service startup.
         | 
     |
| start_mode | 
       
  | 
      
        
        If  
       auto is selected, the service will start at bootup.
       delayed causes a delayed but automatic start after boot (added in version 2.5).
       manual means that the service will start only when another service needs it.
       disabled means that the service will stay off, regardless if it is needed or not.
        | 
     
| state | 
       
  | 
      
        
        State of the service on the system.
        
       
        Note that NSSM actions like "pause", "continue", "rotate" do not fit the declarative style of ansible, so these should be implemented via the ansible command module.
         | 
     
| stderr_file | 
        
        Path to receive error output.
         | 
     |
| stdout_file | 
        
        Path to receive output.
         | 
     |
| user | 
        
        User to be used for service startup.
         | 
     
Examples
# Install and start the foo service
- win_nssm:
    name: foo
    application: C:\windows\foo.exe
# Install and start the foo service with a key-value pair argument
# This will yield the following command: C:\windows\foo.exe -bar true
- win_nssm:
    name: foo
    application: C:\windows\foo.exe
    app_parameters: -bar=true
# Install and start the foo service with a single parameter
# This will yield the following command: C:\windows\\foo.exe bar
- win_nssm:
    name: foo
    application: C:\windows\foo.exe
    app_parameters: _=bar
# Install and start the foo service with a mix of single params, and key value pairs
# This will yield the following command: C:\windows\\foo.exe bar -file output.bat -foo false
- win_nssm:
    name: foo
    application: C:\windows\foo.exe
    app_parameters: _=bar; -file=output.bat; -foo=false
# Use the single line parameters option to specify an arbitrary string of parameters
# for the service executable
- name: Make sure the Consul service runs
  win_nssm:
    name: consul
    application: C:\consul\consul.exe
    app_parameters_free_form: agent -config-dir=C:\consul\config
    stdout_file: C:\consul\log.txt
    stderr_file: C:\consul\error.txt
# Install and start the foo service, redirecting stdout and stderr to the same file
- win_nssm:
    name: foo
    application: C:\windows\foo.exe
    stdout_file: C:\windows\foo.log
    stderr_file: C:\windows\foo.log
# Install and start the foo service, but wait for dependencies tcpip and adf
- win_nssm:
    name: foo
    application: C:\windows\foo.exe
    dependencies: 'adf,tcpip'
# Install and start the foo service with dedicated user
- win_nssm:
    name: foo
    application: C:\windows\foo.exe
    user: foouser
    password: secret
# Install the foo service but do not start it automatically
- win_nssm:
    name: foo
    application: C:\windows\foo.exe
    state: present
    start_mode: manual
# Remove the foo service
- win_nssm:
    name: foo
    state: absent
  Status
This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.
Maintenance
This module is flagged as community which means that it is maintained by the Ansible Community. See Module Maintenance & Support for more info.
For a list of other modules that are also maintained by the Ansible Community, see here.
Author
- Adam Keech (@smadam813)
 - George Frank (@georgefrank)
 - Hans-Joachim Kliemeck (@h0nIg)
 - Michael Wild (@themiwi)
 
Hint
If you notice any issues in this documentation you can edit this document to improve it.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
 https://docs.ansible.com/ansible/2.6/modules/win_nssm_module.html