mirror of
				https://gitlab.alpinelinux.org/alpine/aports.git
				synced 2025-10-31 08:21:49 +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-fpm81"
 | |
| 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-fpm81" ]; then
 | |
| 		: ${fpm_config:="/etc/php81/php-fpm.conf"}
 | |
| 		: ${user:="root"}
 | |
| 	# Defaults for master process per pool
 | |
| 	else
 | |
| 		: ${fpm_config="/etc/php81/php-fpm.d/${RC_SVCNAME#php-fpm81.}.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
 | |
| }
 |