守护进程文件放在哪里?

守护进程文件放在哪里?

我编写了几个通过 Unix 域套接字(原始套接字)进行通信的守护进程,现在我想在生产服务器上找到它们最合适的位置。哪些文件应该放在哪里?

这是我到目前为止所得到的(请随时建议更好的位置):

  • 守护进程二进制文件/可执行文件: 没有线索... /usr/sbin/<subdir>//usr/bin/<subdir>/?别的地方?
  • 插座: /var/run/<subdir>/(不知道为什么,但我感觉不舒服/tmp/
  • 日志文件:/var/log/<subdir>/
  • 配置文件:/etc/<subdir>/

目标操作系统是 Ubuntu 服务器 16.04+。

答案1

关于标准有很多优秀的资源,包括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很可能是正确的。

相关内容