Centos_7 开启自动启动

1,089 阅读1分钟

方式一、rc.local方式

1.编写自己的shell脚本如
vim start-openvpn.sh
#/bin/sh
#检测数据库是否开启
#检测XX是否开启
#启动tomcat
赋予脚本执行权限
chmod +x start-openvpn.sh
2.编辑/etc/rc.d/rc.local文件,把脚本添加到该文件中
在centos7中,/etc/rc.d/rc.local文件的权限被降低了,开机的时候执行在自己的脚本是不能起动一些服务的,执行下面的命令可以文件标记为可执行的文件
chmod +x /etc/rc.d/rc.local
打开/etc/rc.d/rc.local文件,在最后面添加如下脚本
/home/centnet/centnet-service.sh
这样,start-openvpn.sh这个脚本在开机的时候就会被执行了,以后再这里面写启动服务的命令就可以了
#特别注意,脚本里面的路径写完全,否则执行不了

方式二、添加自动启动服务 

在/usr/lib/systemd/system目录中新增文件openvpn-client.service
内容如下

[Unit]
Description=openvpn-client service
After=network.target

[Service]
Type=forking
ExecStart=/etc/openvpn/client/openvpn-client-start.sh start
ExecReload=/etc/openvpn/client/openvpn-client-start.sh stop
ExecStop=/etc/openvpn/client/openvpn-client-start.sh restart
PrivateTmp=true

[Install]
WantedBy=multi-user.target

对应的脚本编写
#!/bin/sh
# start stop restart
OPER_TYPE=$1 #操作类型编号
#项目操作键值对  "1":停止服务 "2":启动服务
declare -A OPER_TYPE_MAP=(
["start"]=" 1 2 "
["stop"]=" 1 "
["restart"]=" 1 2 "
)
#发布逻辑开始
if [[ ! -n ${OPER_TYPE_MAP[${OPER_TYPE}]} ]] ; then
	echo -e "${GREEN}[ $OPER_TYPE ] 操作类型不存在${NC}"
	exit $rc
fi
OPER_TYPE_VALUE=${OPER_TYPE_MAP[${OPER_TYPE}]}
#步骤"1"检查新版本文件是否存在
if [[ ${OPER_TYPE_VALUE} == *" 1 "* ]]; then
    echo -e "${GREEN} 停止服务 ${NC}"
	PROCESS=`ps -ef|grep /usr/sbin/openvpn|grep -v grep|grep -v PPID|awk '{ print $2}'`
	if [ -n "$PROCESS" ]; then 
		echo "kill PID=$PROCESS"
		for i in $PROCESS
		do
			echo "Kill /usr/sbin/openvpn process [ $i ]"
			kill -9 $i
		done
	fi
fi
#步骤"2"启动服务
nohup /usr/sbin/openvpn --config /etc/openvpn/client/ycl-8.13.ovpn > nohup.out 2>&1 &


然后再添加到自动启动服务
systemctl enable openvpn-client
如果不要自动启动该服务则
systemctl disable openvpn-client