这几天学习了一下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
分享到:
相关推荐
2. 配置Nginx与FastDFS的连接,将`/etc/nginx/modules-enabled/500-fastdfs.conf`模板文件链接到`/etc/nginx/conf.d/`目录下,并修改其中的配置以指向FastDFS的存储路径。 3. 创建FastDFS的启动脚本软链接: ``` ...
3. **启动Nginx**:使用`systemctl start nginx`或`/etc/init.d/nginx start`。 4. **检查Nginx状态**:`systemctl status nginx`或`nginx -t`验证配置。 ### 安装Rsync 1. **安装Rsync**:使用`yum install ...
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用户或组...
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 ...
$(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 ...
1. **启动(start)**:当执行`/etc/init.d/nginx start`时,脚本会检查Nginx服务是否已运行,如果没有,它会调用Nginx可执行文件启动服务。启动命令通常是`/usr/sbin/nginx`或者根据实际安装路径调整。 2. **停止...
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...
之后便可以使用/etc/init.d/nginx命令来启动、停止、重启、重载或检查Nginx的状态。 5. 脚本中所包含的系统信息与变量: 脚本通常会定义一些变量来表示Nginx的安装路径,如DAEMON变量指向nginx的执行文件,NAME是...
1. **编辑ssh服务启动脚本:** 使用文本编辑器编辑 `/etc/rc.d/init.d/sshd` 文件。 2. **添加启动参数:** 在脚本中添加 `chkconfig:345 85 15` 行,以便在运行级别3、4、5时启动SSH服务。 3. **更新启动列表:** ...