Does systemd need a PID file?

Does systemd need a PID file?

In most cases it’s not required at all, as systemd will keep services in their own cgroups and does not need a PID file to keep track of them. However, systemd will delete a PID file when the service exits, if the service fails to clean up after itself.

What is systemd PID?

systemd is a system and service manager for Linux operating systems. When run as first process on boot (as PID 1), it acts as init system that brings up and maintains userspace services. Separate instances are started for logged-in users to start their services. conf and the files in system.

How do you find PID of systemd?

You can run systemctl status and systemd will find you the unit that contains that PID. For example, on my system I find a dnsmasq process: # ps -fe | grep dnsmasq nobody 18834 1193 0 Aug25 ?

When to use systemd to read a PID?

Use of this option is recommended for services where Type= is set to forking. systemd will read the PID of the main process of the daemon after start-up of the service. systemd will not write to the file configured here, although it will remove the file after the service has shut down if it still exists.

Can a non forking service create a PID file?

Regrettably, systemd won’t create a PID file for a non-forking service even if you specify a PIDFile= line in the service’s unit file. But you may be able to cheat with an ExecStartPost= line, such as:

What happens to the PID file in service manager?

The service manager will read the PID of the main process of the service from this file after start-up of the service. The service manager will not write to the file configured here, although it will remove the file after the service has shut down if it still exists.

Can a privileged user own a PID file?

The PID file does not need to be owned by a privileged user, but if it is owned by an unprivileged user additional safety restrictions are enforced: the file may not be a symlink to a file owned by a different user (neither directly nor indirectly), and the PID file must refer to a process already belonging to the service.