安装线上的生产服务器软件包时大多会用源码安装,这是因为源码安装可以选择最新的软件包,而Linux系统自带的软件包一般都是最稳定的版本,但不能保证是最新的。源码安装可以自行调整编译参数,最大化地定制安装结果。相对而言,源码安装的性能是最优异的。但该源码装的软件不能使用 systemctl 管理,启动,关闭,查看状态,重启比较麻烦,现在编写一个启动脚本,可以简单快捷的管理该软件

 

环境Red Hat Enterprise Linux Server release 7.0

安装源码包nginx-1.8.0.tar.gz放在/下

说明:nginx 是与 httpd 类似的 web 服务器软件,使用源码编译的方式安装该软件,该软件有几个依赖包:gcc,zlib-devel,pcre-devel

 

一.新建一个脚本

vim /root/test.sh

二.编写脚本内容

#!/bin/bash                                              #脚本声明使用哪种解释器

      yum -y install gcc pcre-devel openssl-devel        #安装依赖包

tar -xf /root/nginx-1.8.0.tar.gz                       #解压源码包到当前文件夹

cd /root/nginx-1.8.0                                    #进入目录

./configure                                       #对即将安装的软件进行配置

      make                                              #编译成二进制文件

      make install                                      #安装


1.png


执行脚本后校验结果:

检查/usr/local/nginx/目录是否有安装好的程序,在关闭 httpd 的情况下,执行如下命令启动 nginx 服务:

# /usr/local/nginx/sbin/nginx

客户端使用浏览器可以访问到默认的网站页面firefox  127.0.0.1

2.pngspacer.gif

三.定义开启服务的函数,新建一个脚本

提示: 上面安装的 nginx 软件,可以使用如下命令管理服务:
/usr/local/nginx/sbin/nginx
//启动服务,启动服务后会自动产生/usr/local/nginx/logs/nginx.pid 文件
/usr/local/nginx/sbin/nginx -s stop //关闭服务,关闭服务后/usr/local/nginx/logs/nginx.pid 文件会被自动删除
但该源码装的软件不能使用 systemctl 管理,启动,关闭,查看状态,重启比较麻烦,现在编写一个启动脚本,可以简单快
捷的管理该软件

 vim /root/test1.sh

脚本内容

#!/bin/bash

PID=/usr/local/nginx/logs/nginx.pid

  start(){

if [ -f

$PID ];then

echo "服务已经启动"

else

/usr/local/nginx/sbin/nginx

fi

}

#定义关闭服务的函数

stop(){

if

[ ! -f $PID ];thenecho "该服务已经关闭"

else

/usr/local/nginx/sbin/nginx -s stop

fi

}

#定义查看状态的函数

status(){

if [ -f

$PID ];then

echo "该服务已启动"

else

echo "该服务已经关闭"

fi

}

#定义主代码,判断用户的位置参数,根据用户的不同参数,执行不同的函数代码

case $1 in

start)

start;;

stop)

stop;;

restart)

stopstart;;

status)

status;;

*)

echo "用法$0 [start|stop|restart|status] "

Esac

 

四.验证脚本:

/root/test1.sh start

/root/test1.sh stop

/root/test1.sh restart

/root/test1.sh status