方式一、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