首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Nginx和PHP-FPM的启动、重启、停止脚本

Nginx和PHP-FPM的启动、重启、停止脚本

原创
作者头像
艳艳代码杂货店
修改2021-10-29 14:09:32
修改2021-10-29 14:09:32
1.5K0
举报

服务器上的Nginx和PHP都是源码编译安装的,不像ubuntu一样有自带service启动脚本,所以不支持类似以前的nginx (start|restart|stop|reload)了。自己动手丰衣足食。以下脚本应该在RHEL, Fedora, CentOS下都适用。

一、Nginx启动脚本/etc/init.d/nginx

代码如下:

#!/bin/bash # # Startup script for Nginx - this script starts and stops the nginx daemon # # chkconfig:   - 85 15 # description:  Nginx is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server # processname: nginx # config:      /usr/local/nginx/conf/nginx.conf # pidfile:     /usr/local/nginx/logs/nginx.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 nginx="/usr/local/nginx/sbin/nginx" prog=$(basename $nginx) NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx lockfile=/var/lock/subsys/nginx start() {     [ -x $nginx ] || exit 5     [ -f $NGINX_CONF_FILE ] || exit 6     echo -n $"Starting $prog: "     daemon $nginx -c $NGINX_CONF_FILE     retval=$?     echo     [ $retval -eq 0 ] && touch $lockfile     return $retval } stop() {     echo -n $"Stopping $prog: "     killproc $prog -QUIT     retval=$?     echo     [ $retval -eq 0 ] && rm -f $lockfile     return $retval } restart() {     configtest || return $?     stop     sleep 1     start } reload() {     configtest || return $?     echo -n $"Reloading $prog: "     killproc $nginx -HUP     RETVAL=$?     echo } force_reload() {     restart } configtest() {   $nginx -t -c $NGINX_CONF_FILE } rh_status() {     status $prog } rh_status_q() {     rh_status >/dev/null 2>&1 } case "$1" in     start)         rh_status_q && exit 0         $1         ;;     stop)         rh_status_q || exit 0         $1         ;;     restart|configtest)         $1         ;;     reload)         rh_status_q || exit 7         $1         ;;     force-reload)         force_reload         ;;     status)         rh_status         ;;     condrestart|try-restart)         rh_status_q || exit 0             ;;     *)         echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"         exit 2 esac

编辑好后保存,执行以下命令

代码如下:

sudo chmod +x /etc/init.d/nginx sudo /sbin/chkconfig nginx on # 检查一下 sudo /sbin/chkconfig --list nginx nginx           0:off   1:off   2:on    3:on    4:on    5:on    6:off

完成!可以使用以下命令管理Nginx了

代码如下:

service nginx start service nginx stop service nginx restart service nginx reload /etc/init.d/nginx start /etc/init.d/nginx stop /etc/init.d/nginx restart /etc/init.d/nginx reload

二、PHP-FPM启动脚本/etc/init.d/php-fpm

代码如下:

#!/bin/bash # # Startup script for the PHP-FPM server. # # chkconfig: 345 85 15 # description: PHP is an HTML-embedded scripting language # processname: php-fpm # config: /usr/local/php/etc/php.ini # Source function library. . /etc/rc.d/init.d/functions PHP_PATH=/usr/local DESC="php-fpm daemon" NAME=php-fpm # php-fpm路径 DAEMON=$PHP_PATH/php/sbin/$NAME # 配置文件路径 CONFIGFILE=$PHP_PATH/php/etc/php-fpm.conf # PID文件路径(在php-fpm.conf设置) PIDFILE=$PHP_PATH/php/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME # Gracefully exit if the package has been removed. test -x $DAEMON || exit 0 rh_start() {   $DAEMON -y $CONFIGFILE || echo -n " already running" } rh_stop() {   kill -QUIT `cat $PIDFILE` || echo -n " not running" } rh_reload() {   kill -HUP `cat $PIDFILE` || echo -n " can't reload" } case "$1" in   start)         echo -n "Starting $DESC: $NAME"         rh_start         echo "."         ;;   stop)         echo -n "Stopping $DESC: $NAME"         rh_stop         echo "."         ;;   reload)         echo -n "Reloading $DESC configuration..."         rh_reload         echo "reloaded."   ;;   restart)         echo -n "Restarting $DESC: $NAME"         rh_stop         sleep 1         rh_start         echo "."         ;;   *)          echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2          exit 3         ;; esac exit 0

编辑好后保存,执行以下命令

代码如下:

sudo chmod +x /etc/init.d/php-fpm sudo /sbin/chkconfig php-fpm on # 检查一下 sudo /sbin/chkconfig --list php-fpm php-fpm           0:off   1:off   2:on    3:on    4:on    5:on    6:off

完成!可以使用以下命令管理php-fpm了

代码如下:

service php-fpm start service php-fpm stop service php-fpm restart service php-fpm reload /etc/init.d/php-fpm start /etc/init.d/php-fpm stop /etc/init.d/php-fpm restart /etc/init.d/php-fpm reload

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档