我正在尝试monit
在 Ubuntu 12.04 服务器上安装。我已经设置并配置了它(我认为),但我不确定它应该以什么用户身份运行。
我在服务器上的用户名为deploy
,我的 monitrc 文件如下所示:
$ ls -l /etc/monit/monitrc
-rwx------ 1 deploy deploy 10229 2015-07-30 12:38 /etc/monit/monitrc
即,它由我登录服务器的用户拥有。我已经启动了 monit 守护进程,我可以看到它正在运行,ps
并且我可以登录它的 Web 界面。
我不确定的是如何赋予它重新启动进程的权限。例如,nginx:如果我想自己重新启动 nginx,我需要这样做
sudo /etc/init.d/nginx restart
这是否意味着 monit 也需要执行 sudo 才能重新启动它?或者,我应该使用自己的用户配置 monit,并设置该用户,以便它可以在没有 sudo 的情况下重新启动 nginx (以及 monit 需要重新启动或访问的任何其他服务)?
谢谢,马克斯
答案1
是的,monit 要么需要运行 sudo,要么以 root 用户身份运行。将 monit 配置为具有正确权限的自己的用户也是可行的,但它可能是潜在解决方案中涉及最多的。
一般来说,从脚本运行 sudo 是不可行的,因为它会提示输入密码。通过编辑 可以在特定情况下停止 sudo 提示输入密码/etc/sudoers
。这个问题的答案问题解释了一个合适的方法。