windows配置nginx像centos一样开机自启

在centos中,设置开机启动脚本可以在: /etc/rc.d/rc.local 这个可执行文件中加入自定义的脚本路径即可,如设置CDH集群开机启动:(由于cloudera-manager使用解压安装的方式,不能直接使用systemctl enable xx)

  • 创建集群启动脚本
[[email protected] ~]# cat /root/sh/cdh.sh 

for((i=128;i<=130;i++))
do
	ssh 192.168.226.$i /opt/cm-5.12.0/etc/init.d/cloudera-scm-agent $1
	if [ $i -eq 128 ] ;then
		ssh 192.168.226.$i	/opt/cm-5.12.0/etc/init.d/cloudera-scm-server $1
	fi
done
  • 配置/etc/rc.d/rc.local文件
[[email protected] ~]# ll /etc/rc.d/rc.local 
-rwxr-xr-x. 1 root root 257 Jan 27 23:07 /etc/rc.d/rc.local
[[email protected] ~]# cat /etc/rc.d/rc.local 

#!/bin/sh
touch /var/lock/subsys/local
/root/sh/cdh.sh start $>/root/rc.log

在windows中,没有这么方便可以自定义开机服务,如nginx解压安装,没有生成nginx.service文件,那么如何配置开机自启呢?

  1. 下载可执行文件,包装所需要开机启动的服务
  2. 定义配置文件
  3. 按照window的流程:安装“包装后的服务”

下载exe文件:http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/2.2.0/, 重命名文件,如nginx-service.exe

创建配置文件:nginx-service.xml, nginx-service.exe.config

a, nginx-service.xml

<?xml version="1.0"?>

<service> 
<id>nginx</id> 
<name>Nginx Service</name>
<description>Nginx Service</description> 
<logpath>F:\app\nginx-1.15.8\logs</logpath>
  

<log mode="roll-by-size"> 
<sizeThreshold>10240</sizeThreshold>    
<keepFiles>8</keepFiles>  
</log>
  
<executable>F:\app\nginx-1.15.8\nginx.exe</executable>  
<startarguments>-p F:\app\nginx-1.15.8</startarguments> <!-- nginx解压目录-->
<stopexecutable>F:\app\nginx-1.15.8\nginx.exe</stopexecutable> 
<stoparguments>-p F:\app\nginx-1.15.8 -s stop</stoparguments><!-- nginx解压目录-->
</service>

b, nginx-service.exe.config

<configuration> 
  	<startup>     <!--配置支持NET 4.0 runtime,默认只支持NET 2.0 runtime-->
		<supportedRuntime version="v2.0.50727" />  
   		<supportedRuntime version="v4.0" />  
	</startup>  

	<runtime>   
   		<generatePublisherEvidence enabled="false"/>   
	</runtime> 
 </configuration>

c, 安装“包装好的服务”

cd 到nginx-service.exe文件目录: nginx-service.exe install
若没有报错,就说明安装成功了,打开任务管理器,查看服务,配置开机自启
windows配置nginx像centos一样开机自启