我想要变得更好。那是我的大错。
通过进行过程监控,我很擅长:我监控一些关键进程,如果失败则重新启动它们。
我不善于以root身份运行:Monit运行一个Web服务器,我不希望它以root身份运行以防出现安全问题。所以,我有一个特殊的'monit'用户,它具有启动和停止某些关键进程所需的权限,这就是它。
monit进程从~monit / .monitrc文件读取,monit坚持认为该文件只能由其运行的用户读取 - 即monit用户。
通过将所有操作脚本和配置存储在源代码控制(mercurial)中,我很擅长,因此我可以使用相同的规范重建机器。我或其他开发人员,检查脚本的源代码控制更改,然后将结果拉到生产机器上。符号链接从~monit / .monitrc指向源控制目录。
然而,这就是它全部落下的地方 - 当我拉最新的脚本时,Mercurial会写入源控制目录,但是pull命令没有作为monit运行,所以monitrc文件可以由另一个用户写入...这个monit不喜欢,也不会跑。
我可以在每次拉动之前和之后不断地对monitrc文件进行chowning和chmodding,但这充满了疏忽。
我看不出如何让monit放松所有权。我看不出粘性位有多大帮助。
有什么建议?