monit 的用户设置?它应该以root身份运行,还是它自己的用户?

Max*_*ams 3 ubuntu sudo nginx monit

我正在尝试安装monit在 Ubuntu 12.04 服务器上。我已经设置并配置了它(我认为),但我不确定它应该以什么用户身份运行。

我在服务器上的用户名为deploy,我的 monitrc 文件如下所示:

$ ls -l /etc/monit/monitrc
-rwx------ 1 deploy deploy 10229 2015-07-30 12:38 /etc/monit/monitrc
Run Code Online (Sandbox Code Playgroud)

即,它归我登录服务器的用户所有。我已经启动了 monit 守护进程,我可以看到它在运行,ps我可以登录到它的 Web 界面。

我不确定的是如何赋予它重新启动进程的特权。例如,nginx:如果我想自己重新启动 nginx,我需要做

sudo /etc/init.d/nginx restart
Run Code Online (Sandbox Code Playgroud)

这是否意味着 monit 也需要执行 sudo 才能重新启动它?或者,我是否应该使用自己的用户配置 monit,并设置该用户,以便它可以在没有 sudo 的情况下重新启动 nginx(以及 monit 需要重新启动或访问的任何其他服务)?

谢谢,马克斯

Mic*_*haw 5

是的,monit 要么需要运行 sudo,要么需要以 root 用户身份运行。将 monit 配置为具有正确权限的自己的用户也是可行的,但它可能是最复杂的潜在解决方案。

通常从脚本运行 sudo 是不可行的,因为它会提示输入密码。在特定情况下,可以通过编辑来停止 sudo 提示输入密码/etc/sudoers。这个问题的答案解释了一种合适的方法。