此文章发布于61
个月前,部分信息可能已经过时
,请自行斟酌确认。
今天更换了新版的 winsw
注册 nginx
服务发现启无法启动了。
旧版 WinSW
原来旧版(1.0.0)winsw 注册 windows 版 nginx 服务时用以下配置是没有问题的。
<service>
<id>nginx</id>
<name>nginx</name>
<description>nginx</description>
<executable>D:\nginx\nginx.exe</executable>
<logpath>D:\nginx\</logpath>
<logmode>roll</logmode>
<depend></depend>
<startargument>-p D:\nginx</startargument>
<stopargument>-p D:\nginx -s stop</stopargument>
</service>
新版WinSW
新版 WinSW(2.1.2)
用上面的配置注册服务会造成路径错误无法正常启动和停止 Nginx
,报错如下:
注意报错内容中日志文件路径 D:/nginx/logs/error.log
前面多了个空格。
nginx: [alert] could not open error log file: CreateFile() " D:/nginx/logs/error.log" failed (123: The filename, directory name, or volume label syntax is incorrect)
2019/11/08 14:07:08 [emerg] 14092#8988: CreateFile() " D:/nginx/conf/nginx.conf" failed (123: The filename, directory name, or volume label syntax is incorrect)
新版服务安装配置
需要用以下配置方式将启动和停止参数分成多行。
<service>
<id>nginx</id>
<name>nginx</name>
<description>nginx</description>
<executable>D:\nginx\nginx.exe</executable>
<logpath>%BASE%\serviceLogs</logpath>
<logmode>roll</logmode>
<depend></depend>
<startargument>-p</startargument>
<startargument>D:\nginx</startargument>
<stopargument>-p</stopargument>
<stopargument>D:\nginx</stopargument>
<stopargument>-s</stopargument>
<stopargument>stop</stopargument>
</service>
正常启动事件日志
//正常启动事件日志
Starting D:\nginx\nginx.exe -p D:\nginx
//正常停止事件日志
Child process [18256 - D:\nginx\nginx.exe -p D:\nginx -s stop ] terminated with 0