mirror of
				https://gitlab.alpinelinux.org/alpine/aports.git
				synced 2025-11-04 10:21:36 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			94 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/sbin/openrc-run
 | 
						|
 | 
						|
# If you want to run separate master process per pool, then create a symlink
 | 
						|
# to this runscript for each pool. In that mode, the php-fpm daemon is started
 | 
						|
# as nobody by default. You can override the user (and group) by declaring
 | 
						|
# variable "user" and optionally "group" in conf.d file, or in the $fpm_config
 | 
						|
# file (the former has precedence).
 | 
						|
 | 
						|
: ${name:="PHP FastCGI Process Manager"}
 | 
						|
 | 
						|
command="/usr/sbin/php-fpm8"
 | 
						|
command_background="yes"
 | 
						|
start_stop_daemon_args="--quiet"
 | 
						|
pidfile="/run/$RC_SVCNAME/php-fpm.pid"
 | 
						|
retry="SIGTERM/20"
 | 
						|
 | 
						|
# configtest is here only for backward compatibility
 | 
						|
extra_commands="checkconfig configtest"
 | 
						|
extra_started_commands="reload reopen"
 | 
						|
description_checkconfig="Run php-fpm config check"
 | 
						|
description_reload="Gracefully reload workers and config"
 | 
						|
description_reopen="Reopen log files"
 | 
						|
 | 
						|
required_files="$fpm_config"
 | 
						|
 | 
						|
depend() {
 | 
						|
	need net
 | 
						|
	use apache2 lighttpd nginx
 | 
						|
}
 | 
						|
 | 
						|
init_vars() {
 | 
						|
	# Defaults for single master process with multiple pools
 | 
						|
	if [ "$RC_SVCNAME" = "php-fpm8" ]; then
 | 
						|
		: ${fpm_config:="/etc/php8/php-fpm.conf"}
 | 
						|
		: ${user:="root"}
 | 
						|
	# Defaults for master process per pool
 | 
						|
	else
 | 
						|
		: ${fpm_config="/etc/php8/php-fpm.d/${RC_SVCNAME#php-fpm8.}.conf"}
 | 
						|
		: ${user:="$(conf_get user)"}
 | 
						|
		: ${user:="nobody"}
 | 
						|
		: ${group:="$(conf_get group)"}
 | 
						|
	fi
 | 
						|
	command_args="--nodaemonize --fpm-config $fpm_config"
 | 
						|
	start_stop_daemon_args="$start_stop_daemon_args
 | 
						|
		--user $user ${group:+"--group $group"}"
 | 
						|
}
 | 
						|
 | 
						|
start_pre() {
 | 
						|
	checkconfig || return 1
 | 
						|
 | 
						|
	# If unix socket is used (instead of TCP/IP), then ensure that the
 | 
						|
	# directory exists and has correct privileges.
 | 
						|
	local listen="$(conf_get listen)"
 | 
						|
	if [ "${listen:0:1}" = "/" ]; then
 | 
						|
		checkpath -d -o $user:$group "$(dirname "$listen")"
 | 
						|
	fi
 | 
						|
 | 
						|
	checkpath -d "$(dirname "$pidfile")"
 | 
						|
}
 | 
						|
 | 
						|
reload() {
 | 
						|
	ebegin "Reloading $name"
 | 
						|
	start-stop-daemon --signal USR2 --pidfile "$pidfile"
 | 
						|
	eend $?
 | 
						|
}
 | 
						|
 | 
						|
reopen() {
 | 
						|
	ebegin "Reopening $name log files"
 | 
						|
	start-stop-daemon --signal USR1 --pidfile "$pidfile"
 | 
						|
	eend $?
 | 
						|
}
 | 
						|
 | 
						|
checkconfig() {
 | 
						|
	init_vars
 | 
						|
	ebegin "Checking $fpm_config"
 | 
						|
 | 
						|
	local out
 | 
						|
	out="$(su -s /bin/sh -c "$command --test --fpm-config $fpm_config" $user 2>&1)" || {
 | 
						|
		printf "%s\n" "$out"
 | 
						|
		eend 1 "failed, please correct errors above"
 | 
						|
		return 1
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
configtest() {
 | 
						|
	ewarn "configtest is deprecated, use checkconfig instead"
 | 
						|
	checkconfig
 | 
						|
}
 | 
						|
 | 
						|
conf_get() {
 | 
						|
	local key="$1"
 | 
						|
	sed -nE "s/^${key}\s*=\s*\"?([^\";]+).*/\1/p" "$fpm_config" | head -n 1
 | 
						|
}
 |