mirror of
https://github.com/unraid/webgui.git
synced 2026-01-12 04:30:03 -06:00
133 lines
2.6 KiB
Bash
Executable File
133 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# script: rc.php-fpm
|
|
#
|
|
# Provides: php-fpm
|
|
# Required-Start: $remote_fs $network
|
|
# Required-Stop: $remote_fs $network
|
|
# Default-Start: 2 3 4 5
|
|
# Default-Stop: 0 1 6
|
|
# Short-Description: starts php-fpm
|
|
# Description: starts the PHP FastCGI Process Manager daemon
|
|
#
|
|
# LimeTech - modified for Unraid OS
|
|
# Bergware - modified for Unraid OS, October 2023
|
|
|
|
DAEMON="PHP-fpm daemon"
|
|
PHP_FPM_BIN="/usr/sbin/php-fpm"
|
|
PHP_FPM_CONF="/etc/php-fpm.conf"
|
|
PHP_FPM_PID="/var/run/php-fpm.pid"
|
|
|
|
# run & log functions
|
|
. /etc/rc.d/rc.runlog
|
|
|
|
# LimeTech - need --allow-to-run-as-root
|
|
PHP_OPTS="--fpm-config $PHP_FPM_CONF --pid $PHP_FPM_PID --allow-to-run-as-root"
|
|
|
|
php_fpm_waitfor(){
|
|
local TIMER=35
|
|
while [[ $TIMER -gt 0 ]]; do
|
|
case "$1" in
|
|
'created') [[ -f $2 ]] && return 0 ;;
|
|
'removed') [[ -f $2 ]] || return 0 ;;
|
|
esac
|
|
((TIMER--))
|
|
sleep 1
|
|
done
|
|
return 1
|
|
}
|
|
|
|
php_fpm_start(){
|
|
log "Starting $DAEMON..."
|
|
local REPLY
|
|
run $PHP_FPM_BIN --daemonize $PHP_OPTS
|
|
if [[ $? -eq 0 ]]; then
|
|
if php_fpm_waitfor created $PHP_FPM_PID; then REPLY="Started"; else REPLY="Failed"; fi
|
|
else
|
|
REPLY="Already started"
|
|
fi
|
|
log "$DAEMON... $REPLY."
|
|
}
|
|
|
|
php_fpm_stop(){
|
|
log "Stopping $DAEMON..."
|
|
local REPLY
|
|
if [[ -r $PHP_FPM_PID ]]; then
|
|
run kill -QUIT $(cat $PHP_FPM_PID)
|
|
if php_fpm_waitfor removed $PHP_FPM_PID; then REPLY="Stopped"; else REPLY="Failed"; fi
|
|
else
|
|
REPLY="Already stopped"
|
|
fi
|
|
log "$DAEMON... $REPLY."
|
|
}
|
|
|
|
php_fpm_restart(){
|
|
log "Restarting $DAEMON..."
|
|
php_fpm_stop
|
|
sleep 1
|
|
php_fpm_start
|
|
}
|
|
|
|
php_fpm_reload(){
|
|
log "Reloading $DAEMON..."
|
|
if [[ ! -r $PHP_FPM_PID ]]; then
|
|
log "$DAEMON... Warning, no pid file found."
|
|
exit 1
|
|
fi
|
|
kill -USR2 $(cat $PHP_FPM_PID)
|
|
log "$DAEMON... Reloaded."
|
|
}
|
|
|
|
php_fpm_force_quit(){
|
|
log "Terminating $DAEMON..."
|
|
if [[ ! -r $PHP_FPM_PID ]]; then
|
|
log "$DAEMON... Warning, no pid file found."
|
|
exit 1
|
|
fi
|
|
kill -TERM $(cat $PHP_FPM_PID)
|
|
php_fpm_waitfor removed $PHP_FPM_PID
|
|
log "$DAEMON... $REPLY."
|
|
}
|
|
|
|
php_fpm_status(){
|
|
if [[ ! -r $PHP_FPM_PID ]]; then
|
|
echo "$DAEMON is not running."
|
|
exit 1
|
|
fi
|
|
PID=$(cat $PHP_FPM_PID)
|
|
if ps -p $PID | grep -q $PID; then
|
|
echo "$DAEMON is currently running."
|
|
else
|
|
echo "$DAEMON is dead but PID file exists"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
case "$1" in
|
|
'start')
|
|
php_fpm_start
|
|
;;
|
|
'stop')
|
|
php_fpm_stop
|
|
;;
|
|
'restart')
|
|
php_fpm_restart
|
|
;;
|
|
'reload')
|
|
php_fpm_reload
|
|
;;
|
|
'force-quit')
|
|
php_fpm_force_quit
|
|
;;
|
|
'configtest')
|
|
$PHP_FPM_BIN -t
|
|
;;
|
|
'status')
|
|
php_fpm_status
|
|
;;
|
|
*)
|
|
echo "Usage: $BASENAME start|stop|restart|reload|force-quit|configtest|status"
|
|
exit 1
|
|
esac
|
|
exit 0
|