init.d.php-fpm.in 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. #! /bin/sh
  2. ### BEGIN INIT INFO
  3. # Provides: php-fpm
  4. # Required-Start: $remote_fs $network
  5. # Required-Stop: $remote_fs $network
  6. # Default-Start: 2 3 4 5
  7. # Default-Stop: 0 1 6
  8. # Short-Description: starts php-fpm
  9. # Description: starts the PHP FastCGI Process Manager daemon
  10. ### END INIT INFO
  11. prefix=@prefix@
  12. exec_prefix=@exec_prefix@
  13. php_fpm_BIN=@sbindir@/php-fpm
  14. php_fpm_CONF=@sysconfdir@/php-fpm.conf
  15. php_fpm_PID=@localstatedir@/run/php-fpm.pid
  16. php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID"
  17. wait_for_pid () {
  18. try=0
  19. while test $try -lt 35 ; do
  20. case "$1" in
  21. 'created')
  22. if [ -f "$2" ] ; then
  23. try=''
  24. break
  25. fi
  26. ;;
  27. 'removed')
  28. if [ ! -f "$2" ] ; then
  29. try=''
  30. break
  31. fi
  32. ;;
  33. esac
  34. echo -n .
  35. try=`expr $try + 1`
  36. sleep 1
  37. done
  38. }
  39. case "$1" in
  40. start)
  41. echo -n "Starting php-fpm "
  42. $php_fpm_BIN --daemonize $php_opts
  43. if [ "$?" != 0 ] ; then
  44. echo " failed"
  45. exit 1
  46. fi
  47. wait_for_pid created $php_fpm_PID
  48. if [ -n "$try" ] ; then
  49. echo " failed"
  50. exit 1
  51. else
  52. echo " done"
  53. fi
  54. ;;
  55. stop)
  56. echo -n "Gracefully shutting down php-fpm "
  57. if [ ! -r $php_fpm_PID ] ; then
  58. echo "warning, no pid file found - php-fpm is not running ?"
  59. exit 1
  60. fi
  61. kill -QUIT `cat $php_fpm_PID`
  62. wait_for_pid removed $php_fpm_PID
  63. if [ -n "$try" ] ; then
  64. echo " failed. Use force-quit"
  65. exit 1
  66. else
  67. echo " done"
  68. fi
  69. ;;
  70. status)
  71. if [ ! -r $php_fpm_PID ] ; then
  72. echo "php-fpm is stopped"
  73. exit 0
  74. fi
  75. PID=`cat $php_fpm_PID`
  76. if ps -p $PID | grep -q $PID; then
  77. echo "php-fpm (pid $PID) is running..."
  78. else
  79. echo "php-fpm dead but pid file exists"
  80. fi
  81. ;;
  82. force-quit)
  83. echo -n "Terminating php-fpm "
  84. if [ ! -r $php_fpm_PID ] ; then
  85. echo "warning, no pid file found - php-fpm is not running ?"
  86. exit 1
  87. fi
  88. kill -TERM `cat $php_fpm_PID`
  89. wait_for_pid removed $php_fpm_PID
  90. if [ -n "$try" ] ; then
  91. echo " failed"
  92. exit 1
  93. else
  94. echo " done"
  95. fi
  96. ;;
  97. restart)
  98. $0 stop
  99. $0 start
  100. ;;
  101. reload)
  102. echo -n "Reload service php-fpm "
  103. if [ ! -r $php_fpm_PID ] ; then
  104. echo "warning, no pid file found - php-fpm is not running ?"
  105. exit 1
  106. fi
  107. kill -USR2 `cat $php_fpm_PID`
  108. echo " done"
  109. ;;
  110. configtest)
  111. $php_fpm_BIN -t
  112. ;;
  113. *)
  114. echo "Usage: $0 {start|stop|force-quit|restart|reload|status|configtest}"
  115. exit 1
  116. ;;
  117. esac