Command line script to create a windows service for a node script with NSSM
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@echo off | |
cd /D "%~dp0" | |
:: Set the correct directory. Only %~dp0 does not work because of its trailing backslash | |
set HOME=%CD% | |
:: check for permissions first | |
:: we need admin priviliges for NSSM | |
goto check_Permissions | |
:check_Permissions | |
echo Administrative permissions required. Detecting permissions... | |
net session >nul 2>&1 | |
if %errorLevel% == 0 ( | |
echo Success: Administrative permissions confirmed. Starting config tool | |
goto startInstallation | |
) else ( | |
echo Failure: Current permissions inadequate. Please right click bat and run as Administrator. | |
pause | |
exit /B 1 | |
) | |
pause | |
:: only gets called when we have admin priviliges | |
:startInstallation | |
echo Installing service | |
:: Set your service name and its description here | |
set SERVICE_NAME=node-script | |
set SERVICE_DESCRIPTION=description | |
:: replace with the absolute path where node.exe can be found | |
nssm install %SERVICE_NAME% "C:\Program Files\nodejs\node.exe" | |
nssm set %SERVICE_NAME% Description "%SERVICE_DESCRIPTION%" | |
nssm set %SERVICE_NAME% AppDirectory "%HOME%" | |
:: replace index.js with the name of your script | |
nssm set %SERVICE_NAME% AppParameters "index.js" | |
:: optionally set the out.log and error.log paths which will be used for stdouts and sterr messages | |
:: better use a logging framework like winston | |
nssm set %SERVICE_NAME% AppStdout "%HOME%\out.log" | |
nssm set %SERVICE_NAME% AppStderr "%HOME%\error.log" | |
:: Start the service | |
nssm start %SERVICE_NAME% | |
echo Successfully installed and started service %SERVICE_NAME% | |
pause |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment