Dear Maintainer, the current systemd service unit for Nagios 4 (/lib/systemd/system/nagios4.service) doesn't allow Nagios to create its PID file because Nagios is not running in daemon mode (option -d is missing) and Nagios (apparently) only creates its PID file ('lock_file' option in /etc/nagios4/nagios.cfg) when it runs in daemon mode.
In addition, the default PID file name in the service unit (PIDFile=/run/nagios4/nagios.pid) is different that the one in /etc/nagios4/nagios.cfg (lock_file=/var/run/nagios4/nagios4.pid), so it might be a good idea to fix that inconsistency as well.
Now, and just for reference, I've created the following systemd drop-in as a workaround, /etc/systemd/system/nagios4.service.d/10-fix-for-incorrect-pid-management.conf:
[Service]
ExecStartPost=/bin/sh -c 'umask 022; pgrep nagios4 > /var/run/nagios4/nagios4.pid'
PIDFile=/run/nagios4/nagios4.pid
But maybe that approach wouldn't be really appropriate for the fix and instead, it would be preferred to run Nagios in daemon mode as you can see upstream. From https://github.com/NagiosEnterprises/nagioscore/blob/master/startup/default-service.in:
ExecStart=@bindir@/nagios -d @sysconfdir@/nagios.cfg