Apache's PidFile directory is removed every boot
Solution 1:
The issue was that, when installing Apache, group apache wasn't being created.
# systemctl status systemd-tmpfiles-setup.service
systemd-tmpfiles-setup.service - Create Volatile Files and Directories
Loaded: loaded (/usr/lib/systemd/system/systemd-tmpfiles-setup.service; static)
Active: failed (Result: exit-code) since Tue 2014-09-30 09:40:30 EDT; 3h 24min ago
Docs: man:tmpfiles.d(5)
man:systemd-tmpfiles(8)
Process: 724 ExecStart=/usr/bin/systemd-tmpfiles --create --remove --boot --exclude-prefix=/dev (code=exited, status=1/FAILURE)
Main PID: 724 (code=exited, status=1/FAILURE)
Sep 30 09:40:30 servername systemd-tmpfiles[724]: [/usr/lib/tmpfiles.d/httpd.conf:1] Unknown group 'apache'.
Sep 30 09:40:30 servername systemd-tmpfiles[724]: [/usr/lib/tmpfiles.d/httpd.conf:2] Unknown user 'apache'.
Sep 30 09:40:30 servername systemd[1]: systemd-tmpfiles-setup.service: main process exited, code=exited, status=1/FAILURE
Sep 30 09:40:30 servername systemd[1]: Failed to start Create Volatile Files and Directories.
Sep 30 09:40:30 servername systemd[1]: Unit systemd-tmpfiles-setup.service entered failed state.
That's because I've a NIS server configured, whith a NIS apache user. As it has an apache user, Apache installation doesn't create apache group. But apache group also exists on NIS! Well, NIS is messing up things.
Bottom line is: I have to stop ypbind, install Apache and then restart ypbind (or just create manually a apache group in /etc/group).
Solution 2:
I had the same solution for my problem as @datakid with the difference that after a reboot the systemd-tmpfiles-setup.service
was dead again.
For my solution you first need to know that I mounted my /var directory on a different disk. And there was the problem.
My /etc/fstab
for the /var
looked like this:
/dev/xvdb1 /var ext4 defaults,noatime,_netdev,nofail 0 2
So the problem was the _netdev. Because this might be useful for a NFS, where you need a network but not for my case with the /var
directory
Here's the explanation for _netdev:
The filesystem resides on a device that requires network access (used to prevent the system from attempting to mount these filesystems until the network has been enabled on the system).
After i removed the _netdev everything was working again, also after reboot
Solution 3:
I had this same problem but with a slightly different solution.
Using @joaoolavo's solution, I tried systemctl status systemd-tmpfiles-setup.service
:
[root@server ~]# systemctl status systemd-tmpfiles-setup.service
● systemd-tmpfiles-setup.service - Create Volatile Files and Directories
Loaded: loaded (/usr/lib/systemd/system/systemd-tmpfiles-setup.service; static; vendor preset: disabled)
Active: inactive (dead)
Docs: man:tmpfiles.d(5)
man:systemd-tmpfiles(8)
Note that Active: inactive (dead).
Restarting systemd-tmpfiles-setup created the files I needed in /run/ , and the status changed to Active: active (exited), although, obviously, httpd (and in my case, postgresql) weren't loaded:
[root@server ~]# systemctl start systemd-tmpfiles-setup.service
[root@server ~]# systemctl status systemd-tmpfiles-setup.service
● systemd-tmpfiles-setup.service - Create Volatile Files and Directories
Loaded: loaded (/usr/lib/systemd/system/systemd-tmpfiles-setup.service; static; vendor preset: disabled)
Active: active (exited) since Fri 2016-03-18 13:35:36 AEDT; 8s ago
Docs: man:tmpfiles.d(5)
man:systemd-tmpfiles(8)
Process: 2551 ExecStart=/usr/bin/systemd-tmpfiles --create --remove --boot --exclude-prefix=/dev (code=exited, status=0/SUCCESS)
Main PID: 2551 (code=exited, status=0/SUCCESS)
Mar 18 13:35:36 server.org systemd[1]: Starting Create Volatile Files and Directories...
Mar 18 13:35:36 server.org systemd[1]: Started Create Volatile Files and Directories.
Would it survive a reboot?
Yes it does. In fact, reboots now come up as we would expect - all tmpfiles created, httpd and postgresql are also started.
It would seem that systemd-tmpfiles-setup.service
needs to be in Active state active (exited) rather than inactive (dead) to work properly after boot.