具有多个 pid 的 sysvinit 上的 /var/lock/subsys 命名约定

具有多个 pid 的 sysvinit 上的 /var/lock/subsys 命名约定

在此Red Hat 的技巧和窍门文章, 据说:

当通过 init 脚本启动服务时,/var/lock/subsys/ 目录中的一个文件会被触及,其名称与 init 脚本相同。当服务停止时,此文件会被删除。此文件的内容对于本文的范围来说并不重要,只要文件名与 init 脚本相同即可。

但是,有些服务可能需要多个锁。例如,其中一个 GitLab 初始化脚本需要一个用于 unicorn 的锁和一个用于 sidekiq 的锁:

# The PID and LOCK files used by unicorn and sidekiq
UPID=$APP_PATH/tmp/pids/unicorn.pid
ULOCK=/var/lock/subsys/unicorn
SPID=$APP_PATH/tmp/pids/sidekiq.pid
SLOCK=/var/lock/subsys/sidekiq

/var/lock/subsys/gitlab-unicorn如果开发人员使用and会不会更好/var/lock/subsys/gitlab-sidekiq?或者也许是目录/var/lock/subsys/gitlab/

是否可以通过使用单个锁文件来避免此问题?

对于这种情况的最佳做法是什么?

相关内容