在此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/
?
是否可以通过使用单个锁文件来避免此问题?
对于这种情况的最佳做法是什么?