I keep my sphinx pid in /var/run/sphinx/searchd.pid but every time I hard reboot the directory /var/run/sphinx disappears and sphinx fails to start. Is there a way to make that directory stick or have it automatically created? How do people usually handle this situation? I use Ubuntu Hardy
That directory is ephemeral by design. If its contents stuck around across boots, all sorts of ugly effects could occur, as control scripts of various sorts look in there to see what processes they should be signaling. On recent system, this temporary nature is enforced by mounting
tmpfs, while older systems just deleted everything in the directory at startup.
Therefore, you need to configure Sphinx or its startup script to create that directory, or just write the PID file in
there is now a centralized mechanism for the creation of temporary files and directories such as these. A service wishing to use this method can remove mkdir commands in its own startup script and instead place a .conf file in /etc/tmpfiles.d, /run/tmpfiles.d, or /usr/lib/tmpfiles.d, with Ubuntu services seeming to prefer the last option.
for your case create a file
the content of the file would be:
d /var/run/sphinx 0755 root root
d stands for directory, next to it is the path, permission, owner and group.
This will create the
/var/run/sphnix directory on reboot.
Checkout the full documentation tmpfiles.d
systemd, there is a configuration item explicitly for this.
If set, one or more directories by the specified names will be created below
/run, and will be owned by the user and group specified in