Skip to content

php-fpm.service improvements#21743

Open
marcosfrm wants to merge 2 commits intophp:masterfrom
marcosfrm:php-fpm-service-1
Open

php-fpm.service improvements#21743
marcosfrm wants to merge 2 commits intophp:masterfrom
marcosfrm:php-fpm-service-1

Conversation

@marcosfrm
Copy link
Copy Markdown

See each commit. Thanks.

The PIDFile directive is unnecessary for services using Type=notify (if systemd integration is enabled) or
Type=simple and is discouraged by the systemd.service(5) manual. Since systemd monitors the main PID
directly from the process executed in ExecStart, it does not need a PID file to track the service.
Furthermore, the default configuration of php-fpm.conf has 'pid' commented out, which is equivalent to not
having a PID file.

Closes php#21740
Currently, php-fpm.service relies on the default KillMode=control-group, which sends SIGTERM to all
processes in the cgroup simultaneously. This can interfere with php-fpm's internal process management,
where the master process is designed to handle the graceful termination of its child workers.

Setting KillMode=mixed ensures that SIGTERM is sent only to the master process, allowing it to orchestrate
a clean shutdown. If the master process fails to exit within TimeoutStopSec, systemd will send SIGKILL to
all processes in the cgroup. Additionally, if the master exits but leaves orphaned children, systemd will
clean them up via SIGKILL. This mode has been supported since systemd 209 and provides a more robust
shutdown sequence for master-worker architectures.

Closes php#18655
@marcosfrm marcosfrm requested a review from bukka as a code owner April 13, 2026 13:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant