制作自己的nginx、mysql、php等一键启动脚本

编写之前,请先学习下shell的语法等,点击学习我这篇博文

我这里只写了nginx的,套路都一样,学会nginx的一键启动脚本,改一下就能用了

首先要告诉大家的是,启动脚本一般都放在/etc/init.d/目录下


第一步:编写脚本

思路:我们通过使用,shell自带的公共函数库中的方法。将我们安装完原有绝对路径启动二进制脚本,放到里面。

通过执行脚本-》调用shell函数-》达到启动的目的

/etc/init.d/functions  #公共的函数

daemon   //A function to start a program. 启动一个程序

killproc    // A function to stop a program. 停止一个程序

pidofproc  //A function to find the pid of a program. 去找xx正在运行程序的pid

status //获取xx程序的运行状态

#!/bin/bash

#==============================================
# 万能的一键启动脚本
# 测试没问题后,放到/etc/init.d/目录下并改名为 nginx 不要带.sh不然找不到
# author:xigua
# data:2018-5-26
#==============================================


# 4、include functions
. /etc/init.d/functions

# 下面这个不加的话,添加到开机自启动时,会报找不到该文件。50 60 那俩参数是1-100输啥都行
# chkconfig: - 50 60 

#核心功能在这3个变nginx改成php就是php启动脚本了
exec=/usr/local/nginx/sbin/nginx #5、给变量赋值,安装完启动脚本的绝对路径
lock=/var/lock/subsys/nginx #是否启动的一个标志位
prog=nginx

#6、定义函数
function start(){
	pidofproc $exec > /dev/null #输出的pid重定向走,就不会显示到屏幕上了
	[ $? = 0 ] && echo "$prog 已启动,请勿重复启动" && exit

	daemon $exec 
	#7、如果上一条指令运行没问题,就输出 启动成功
	[ $? = 0 ] && echo -e "\033[32m $prog 启动成功 \033[0m"  && touch $lock  #启动 创建 日志
}


function stop(){
	pidofproc $exec > /dev/null #输出的pid重定向走,就不会显示到屏幕上了
        [ $? != 0 ] && echo "$prog 已停止,请勿重复停止" && exit

	killproc $exec
	[ $? = 0 ] && echo -e "\033[32m $prog 停止成功 \033[0m"  && rm -f $lock  #停止 删除 日志
}


#1、指令过来先走判断
case $1 in
	start) 
		start #3、调用上面定义的函数
	;;
	stop)
		stop
	;;
	restart)      #只能在启动的情况下,进行重启
		stop
		start
	;;
	*)	#2、用户输入的都匹配不上
		echo '请输入start || stop'
	;;
esac


注意: 点 空格 || source 都可以引入

source /etc/init.d/functions  //用source引入



第2步:执行脚本


1、相对路径:使用./执行

2、使用绝对路径执行

第3步:设置开机自启动


思路:我们自己写的脚本,都不是系统必须的,所以添加到非系统的,然后设为on

chkconfig  --list  列出系统

 制作自己的nginx、mysql、php等一键启动脚本_第1张图片

systemctl list-unit-files  列出系统的

systemctl disable firewalld   //禁止防火墙开机自启动

chkconfig  --add  nginx  //添加到 开机管理列表(此处的nginx是上面编写那脚本)

制作自己的nginx、mysql、php等一键启动脚本_第2张图片

chkconfig nginx on    //设置开机自启动(此处的nginx是上面编写那脚本)

制作自己的nginx、mysql、php等一键启动脚本_第3张图片


 


你可能感兴趣的:(linux,编写nginx开机自启动脚本,设置开机自启动)