Sce*_*ule 5 filesystems daemon
我编写了几个通过 Unix 域套接字(原始套接字)进行通信的守护进程,现在我想在生产服务器上找到它们最合适的位置。哪些文件应该放在哪里?
这是我到目前为止所得到的(请随时建议更好的位置):
/usr/sbin/<subdir>/
?/usr/bin/<subdir>/
?别的地方?/var/run/<subdir>/
不知道为什么,但我觉得不舒服/tmp/
)/var/log/<subdir>/
/etc/<subdir>/
目标操作系统是 Ubuntu 服务器 16.04+。
有关该标准的优质资源有很多,包括https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html
我会建议:
/run/<subdir>/
. 那是因为它只是目前 Ubuntu 上的/var/run
一个符号链接。是此类事物的新标准场所。/run
/run
/var/log/<subdir>/
正确。虽然单个日志实际上并不需要目录。不要忘记添加一个/etc/logrotate.d
条目/etc/<subdir>/
正确。同样,单个配置文件不需要目录,但也没有什么坏处。二进制文件:
这些都很棘手;它们可以存在的地方有很多。一般bin
用于用户命令,sbin用于服务器守护进程。有人说sbin
是只由 root 执行的二进制文件。请参阅此处: https: //askubuntu.com/questions/308045/differences- Between-bin -sbin-usr-bin-usr-sbin-usr-local-bin-usr-local
/bin
或/sbin
。为启动系统所需的二进制文件保留这些。/usr/bin
和/usr/sbin
。尽管也有例外,但邦图上的大多数事物都住在这里。如果您正确地将软件打包(到 .dpkg 或类似文件中),那么一定要使用/usr/bin
和/usr/sbin
。/usr/local/bin
和/usr/local/sbin
更合适。但如果您要将代码分发给其他人,通常不应该使用此方法。/usr/lib
或下/usr/local/lib
。二进制文件被视为库的情况并不罕见简而言之,/usr/sbin
并且/usr/bin
很可能是正确的。