`
sorphi
  • 浏览: 46951 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

/etc/init.d/nginx (lsb style)

阅读更多

这几天学习了一下heartbeat的资料,想参照 Two Apache Web Servers in an Active/Active Configuration    做个Two Nginx Web Services in Active/Active HA。研究发现,heartbeat所管理的资源代理(Resource Agent),有OCF、LSB等几种 。LSB这种shell脚本我还能依葫芦画瓢的写一点,参考linux系统中的原有脚本和网上资料,写了一个很简单的:

 

#!/bin/bash
#
# nginx:       Control the nginx Daemon
#
# Version:      @(#) /etc/init.d/nginx 0.1
#
# description: This is a init.d script for nginx. Tested on CentOS4. \
#              Change DAEMON and PIDFILE if neccessary.
#

#Location of nginx binary. Change path as neccessary
DAEMON=/usr/local/nginx/sbin/nginx
NAME=`basename $DAEMON`

#Pid file of nginx, should be matched with pid directive in nginx config file.
PIDFILE=/var/run/$NAME.pid

#this file location
SCRIPTNAME=/etc/init.d/$NAME

#only run if binary can be found
test -x $DAEMON || exit 0

RETVAL=0

start() {
	echo $"Starting $NAME"
	$DAEMON
	RETVAL=0
}

stop() {
	echo $"Graceful stopping $NAME"
	[ -s "$PIDFILE" ] && kill -QUIT `cat $PIDFILE`
	RETVAL=0
}

forcestop() {
    echo $"Quick stopping $NAME"
    [ -s "$PIDFILE" ] && kill -TERM `cat $PIDFILE`
    RETVAL=$?
}

reload() {
    echo $"Graceful reloading $NAME configuration"
    [ -s "$PIDFILE" ] && kill -HUP `cat $PIDFILE`
    RETVAL=$?
}

status() {
    if [ -s $PIDFILE ]; then
        echo $"$NAME is running."
        RETVAL=0
    else
        echo $"$NAME stopped."
        RETVAL=3
    fi
}
# See how we were called.
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    force-stop)
        forcestop
        ;;
    restart)
        stop
        start
        ;;
    reload)
        reload
        ;;
    status)
        status
        ;;
    *)
        echo $"Usage: $0 {start|stop|force-stop|restart|reload|status}"
        exit 1
esac

exit $RETVAL

注意对应的Nginx配置的PID指令。

参考资料:

LSBResourceAgent

Running and Controlling Nginx

Boot Script for Nginx on Ubuntu, Debian etc.

分享到:
评论

相关推荐

    ubuntu下FastDFS+Nginx部署

    2. 配置Nginx与FastDFS的连接,将`/etc/nginx/modules-enabled/500-fastdfs.conf`模板文件链接到`/etc/nginx/conf.d/`目录下,并修改其中的配置以指向FastDFS的存储路径。 3. 创建FastDFS的启动脚本软链接: ``` ...

    linux环境下的Mysql+nginx+rsync安装指导

    3. **启动Nginx**:使用`systemctl start nginx`或`/etc/init.d/nginx start`。 4. **检查Nginx状态**:`systemctl status nginx`或`nginx -t`验证配置。 ### 安装Rsync 1. **安装Rsync**:使用`yum install ...

    linux上安装Nginx

    sudo ln -s /usr/local/nginx/sbin/nginx /etc/init.d/nginx sudo update-rc.d nginx defaults ``` 6. **安全注意事项**: 为了安全起见,应该将Nginx的默认网站目录`/var/www/html`权限设置为www-data用户或组...

    Ubuntu 18 Kubernetes集群的安装和部署 以及Helm的安装.rar

    echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold ...

    linux-KubernetesonRaspbianRaspberryPi

    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io sudo apt install -y kubeadm kubelet ...

    nginx-sysvinit-script:用于nginx的符合Linux Standard Base的SysVinit脚本

    1. **启动(start)**:当执行`/etc/init.d/nginx start`时,脚本会检查Nginx服务是否已运行,如果没有,它会调用Nginx可执行文件启动服务。启动命令通常是`/usr/sbin/nginx`或者根据实际安装路径调整。 2. **停止...

    Linux系统上配置Nginx+Ruby on Rails+MySQL超攻略

    echo "deb http://nginx.org/packages/ubuntu/ $(lsb_release -cs) nginx" | sudo tee /etc/apt/sources.list.d/nginx.list echo "deb-src http://nginx.org/packages/ubuntu/ $(lsb_release -cs) nginx" | sudo tee...

    Linux下创建nginx脚本-start、stop、reload…

    之后便可以使用/etc/init.d/nginx命令来启动、停止、重启、重载或检查Nginx的状态。 5. 脚本中所包含的系统信息与变量: 脚本通常会定义一些变量来表示Nginx的安装路径,如DAEMON变量指向nginx的执行文件,NAME是...

    Linux使用小结

    1. **编辑ssh服务启动脚本:** 使用文本编辑器编辑 `/etc/rc.d/init.d/sshd` 文件。 2. **添加启动参数:** 在脚本中添加 `chkconfig:345 85 15` 行,以便在运行级别3、4、5时启动SSH服务。 3. **更新启动列表:** ...

Global site tag (gtag.js) - Google Analytics