这篇文章主要介绍了Nginx和PHP-FPM的启动、重启、停止脚本分享,脚本中包含start、stop、reload、restart等常用的管理方法,并可以加入系统服务然后使用servicem命令管理,需要的朋友可以参考下
 

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

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

  1. #!/bin/bash
  2. #
  3. # Startup script for Nginx - this script starts and stops the nginx daemon
  4. #
  5. # chkconfig: - 85 15
  6. # description: Nginx is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server
  7. # processname: nginx
  8. # config: /usr/local/nginx/conf/nginx.conf
  9. # pidfile: /usr/local/nginx/logs/nginx.pid
  10.  
  11. # Source function library.
  12. . /etc/rc.d/init.d/functions
  13.  
  14. # Source networking configuration.
  15. . /etc/sysconfig/network
  16.  
  17. # Check that networking is up.
  18. [ "$NETWORKING" = "no" ] && exit 0
  19.  
  20. nginx="/usr/local/nginx/sbin/nginx"
  21. prog=$(basename $nginx)
  22.  
  23. NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
  24.  
  25. [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
  26.  
  27. lockfile=/var/lock/subsys/nginx
  28.  
  29. start() {
  30. [ -x $nginx ] || exit 5
  31. [ -f $NGINX_CONF_FILE ] || exit 6
  32. echo -n $"Starting $prog: "
  33. daemon $nginx -c $NGINX_CONF_FILE
  34. retval=$?
  35. echo
  36. [ $retval -eq 0 ] && touch $lockfile
  37. return $retval
  38. }
  39.  
  40. stop() {
  41. echo -n $"Stopping $prog: "
  42. killproc $prog -QUIT
  43. retval=$?
  44. echo
  45. [ $retval -eq 0 ] && rm -f $lockfile
  46. return $retval
  47. }
  48.  
  49. restart() {
  50. configtest || return $?
  51. stop
  52. sleep 1
  53. start
  54. }
  55.  
  56. reload() {
  57. configtest || return $?
  58. echo -n $"Reloading $prog: "
  59. killproc $nginx -HUP
  60. RETVAL=$?
  61. echo
  62. }
  63.  
  64. force_reload() {
  65. restart
  66. }
  67.  
  68. configtest() {
  69. $nginx -t -c $NGINX_CONF_FILE
  70. }
  71.  
  72. rh_status() {
  73. status $prog
  74. }
  75.  
  76. rh_status_q() {
  77. rh_status >/dev/null 2>&1
  78. }
  79.  
  80. case "$1" in
  81. start)
  82. rh_status_q && exit 0
  83. $1
  84. ;;
  85. stop)
  86. rh_status_q || exit 0
  87. $1
  88. ;;
  89. restart|configtest)
  90. $1
  91. ;;
  92. reload)
  93. rh_status_q || exit 7
  94. $1
  95. ;;
  96. force-reload)
  97. force_reload
  98. ;;
  99. status)
  100. rh_status
  101. ;;
  102. condrestart|try-restart)
  103. rh_status_q || exit 0
  104. ;;
  105. *)
  106. echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
  107. exit 2
  108. esac

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

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

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

  1. service nginx start
  2. service nginx stop
  3. service nginx restart
  4. service nginx reload
  5.  
  6. /etc/init.d/nginx start
  7. /etc/init.d/nginx stop
  8. /etc/init.d/nginx restart
  9. /etc/init.d/nginx reload

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

  1. #!/bin/bash
  2. #
  3. # Startup script for the PHP-FPM server.
  4. #
  5. # chkconfig: 345 85 15
  6. # description: PHP is an HTML-embedded scripting language
  7. # processname: php-fpm
  8. # config: /usr/local/php/etc/php.ini
  9.  
  10. # Source function library.
  11. . /etc/rc.d/init.d/functions
  12.  
  13. PHP_PATH=/usr/local
  14. DESC="php-fpm daemon"
  15. NAME=php-fpm
  16. # php-fpm路径
  17. DAEMON=$PHP_PATH/php/sbin/$NAME
  18. # 配置文件路径
  19. CONFIGFILE=$PHP_PATH/php/etc/php-fpm.conf
  20. # PID文件路径(在php-fpm.conf设置)
  21. PIDFILE=$PHP_PATH/php/var/run/$NAME.pid
  22. SCRIPTNAME=/etc/init.d/$NAME
  23.  
  24. # Gracefully exit if the package has been removed.
  25. test -x $DAEMON || exit 0
  26.  
  27. rh_start() {
  28. $DAEMON -y $CONFIGFILE || echo -n " already running"
  29. }
  30.  
  31. rh_stop() {
  32. kill -QUIT `cat $PIDFILE` || echo -n " not running"
  33. }
  34.  
  35. rh_reload() {
  36. kill -HUP `cat $PIDFILE` || echo -n " can't reload"
  37. }
  38.  
  39. case "$1" in
  40. start)
  41. echo -n "Starting $DESC: $NAME"
  42. rh_start
  43. echo "."
  44. ;;
  45. stop)
  46. echo -n "Stopping $DESC: $NAME"
  47. rh_stop
  48. echo "."
  49. ;;
  50. reload)
  51. echo -n "Reloading $DESC configuration..."
  52. rh_reload
  53. echo "reloaded."
  54. ;;
  55. restart)
  56. echo -n "Restarting $DESC: $NAME"
  57. rh_stop
  58. sleep 1
  59. rh_start
  60. echo "."
  61. ;;
  62. *)
  63. echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2
  64. exit 3
  65. ;;
  66. esac
  67. exit 0

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

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

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

  1. service php-fpm start
  2. service php-fpm stop
  3. service php-fpm restart
  4. service php-fpm reload
  5.  
  6. /etc/init.d/php-fpm start
  7. /etc/init.d/php-fpm stop
  8. /etc/init.d/php-fpm restart
  9. /etc/init.d/php-fpm reload

  

Nginx和PHP-FPM的启动、重启、停止脚本分享的更多相关文章

  1. Nginx常用命令(启动/重启/停止/测试配置文件/重新加载配置文件)

    Nginx 安装后只有一个程序文件,本身并不提供各种管理程序,它是使用参数和系统信号机制对 Nginx 进程本身进行控制的. Nginx 的参数包括有如下几个: 使用: /usr/local/ngin ...

  2. linux中Jenkins启动/重启/停止命令

    简要记录一下Linux 中Jenkins启动/重启/停止命令 启动service jenkins start1重启service jenkins restart1停止service jenkins s ...

  3. linux下lampp的启动和停止脚本

    今天试着写了lampp的启动停止脚本,和上一篇的tomcat的启动停止有一点小区别,就是lampp启动之后有很多的进程号,如果按照tomcat的停止脚本写就会出错,下面做细细的介绍 1.lampp的停 ...

  4. Dubbo应用启动与停止脚本,超具体解析

    本周刚好研究了一下dubbo的启动脚本,所以在官网的启动脚本和公司内部的启动脚本做了一个整理,弄了一份比較通过的Dubbo应用启动和停止脚本.          以下的脚本仅仅应用于配置分离的应用.什 ...

  5. Nginx和PHP-FPM的启动、重启、停止脚本分享(转)

    服务器上的Nginx和PHP都是源码编译安装的,不像ubuntu一样有自带service启动脚本,所以不支持类似以前的nginx (start|restart|stop|reload)了.自己动手丰衣 ...

  6. [Nginx] 在Linux下的启动、停止和重加载

    Nginx的启动 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 其中-c参数指定配置文件路径.   Nginx的停止 ...

  7. Linux Oracle服务启动&停止脚本与开机自启动

    在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介 ...

  8. Jenkins启动、停止脚本

    1.jenkins下载地址:http://pan.baidu.com/s/1o79ZRzs 2.创建shell脚本,如:jenkins.sh #!/bin/bash pid=`ps -ef | gre ...

  9. shell 启动和停止脚本

    启动脚本 start_kmeans_v3.sh #!/bin/bash #用于kmeans_data_v3_hadle启动 ps -ef | grep kmeans_data_v3_hadle.py ...

随机推荐

  1. LSTM编程所用函数

    1.Round函数返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果.可是当保留位跟着的即使是5,有可能进位,也有可能舍去,机会各50% 2.python基础 (1)@property 特 ...

  2. Oracle监听已经启动了 sqlplus / as sysdba 仍然报 ERROR:ORA-12560

    我的Oracle是11g的 system 的密码忘记了, 但是scott的密码我还记得而且能登录 . 想以sqlplus /as sysdba 修改system密码 一直在报 ERROR:ORA-12 ...

  3. 应用MySQL(开启远程登录权限)

    参考“开启MySQL远程访问权限 允许远程连接”.

  4. 17Linux_mariadb_PXE+Kickstart

    Mariadb mariadb-client mariadb-server # yum groupinstall mariadb mariadb-client mariadb-server -y # ...

  5. Winform 中写代码布局中遇到的控件遮盖问题

    在winform中编程时,需要动态向主窗体中增加菜单栏和用户控件,菜单栏需要设置DockStyle为Top ,而设置用户控件的DockStyle为Fill,之后在加载的时候,出现了菜单栏遮盖用户控件的 ...

  6. Centos7】hostnamectl 设置主机名

    Centos7中提供了设置主机名的工具 hostnamectl hostname有三种状态 static(永久) transient(瞬态) pretty (灵活) 查看主机名状态 [oracle@h ...

  7. 数据库sql使用小结

    1.更新数据库中表的字段的时候,如果更新的表本身含有最细粒度的字段,那么可以以最细粒度作为判断条件,一次性更新多个字段: 2.如果更新的表中本身不含有最细粒度字段,那么要更新多个字段时有两种思路: a ...

  8. 41_redux_counter应用_react-redux版本

    问题: redux与react组件的代码耦合度太高 编码不够简洁 react-redux 1)是一个react插件库 下载: npm install --save react-redux@5.0.6 ...

  9. 关于在centos6 + grub的旧版本中,如何关闭CPU throttling

    由于个人需求,要编译安装ATLAS库,其中就有关闭CPU throttling的步骤, 最常规简单的方法是修改grub /etc/default/grub/ 之后再接一些简单的步骤 + 重启就完成了. ...

  10. Android:得到WebView当前页的html源码

    WebView没有提供直接的API,需要用JavaScript变通处理一下.本文试图总结一个最简单.优雅的代码. 有两步: 1.先创建一个JavaScript接口类: class MyJavaScri ...