我将我的 sphinx pid 保存在 /var/run/sphinx/searchd.pid 但每次我硬重启目录 /var/run/sphinx 消失并且 sphinx 无法启动。有没有办法使该目录保持不变或自动创建?人们通常如何处理这种情况?我使用 Ubuntu Hardy
Phi*_*ler 23
该目录在设计上是短暂的。如果它的内容停留在靴子上,则可能会出现各种丑陋的效果,因为各种控制脚本会在那里查看它们应该发出信号的进程。在最近的系统上,这种临时性质是通过挂载/var/run
as来强制执行的tmpfs
,而较旧的系统只是在启动时删除目录中的所有内容。
因此,您需要配置 Sphinx 或其启动脚本来创建该目录,或者直接写入 PID 文件/var/run
。
drA*_*erT 15
你至少有两次机会:
mkdir -p /var/run/sphinx/
或者
pid_file = /var/run/sphinx-searchd.pid
在/etc/sphinx.conf
我是第二个。
Aak*_*hal 10
现在有一个集中的机制来创建诸如此类的临时文件和目录。希望使用此方法的服务可以在其自己的启动脚本中删除 mkdir 命令,而是将 .conf 文件放在 /etc/tmpfiles.d、/run/tmpfiles.d 或 /usr/lib/tmpfiles.d 中,对于 Ubuntu服务似乎更喜欢最后一个选项。为您的情况创建一个文件/usr/lib/tmpfiles.d/sphinx.conf
。
该文件的内容将是:
d /var/run/sphinx 0755 root root
这里d
代表目录,旁边是路径、权限、所有者和组。
这将/var/run/sphnix
在重新启动时创建目录。
查看完整的文档tmpfiles.d
小智 6
如果使用systemd
,则有一个明确用于此的配置项。
http://manpages.ubuntu.com/manpages/xenial/en/man5/systemd.exec.5.html
[Service]
RuntimeDirectory=sphinx
Run Code Online (Sandbox Code Playgroud)
如果设置,将在下面创建一个或多个指定名称的目录,并由和/run
中指定的用户和组拥有。这意味着该服务不需要写入 /var/run 的权限。User=
Group=
从启动脚本启动的脚本和程序会获取一个指向 RuntimeDirectory 位置的变量 $RUNTIME_DIRECTORY - 该位置可能并不总是位于 /var/run 中。 https://www.freedesktop.org/software/systemd/man/systemd.exec.html
归档时间: |
|
查看次数: |
22370 次 |
最近记录: |