Monit 不会在启动时自动启动

Monit 不会在启动时自动启动

正如标题所述,我遇到了一个问题,monit 无法在启动时启动。我有一个 CentOS 7 盒子,它可以启动,还有另一个 CentOS 7 盒子,它无法启动,所以我知道这不是操作系统问题,一定是某个地方的配置问题。这两个盒子都是用 vagrant 构建的,几乎一模一样。我不知道从哪里开始。

我会关注这个问题一段时间,所以请随时让我澄清任何问题,我知道这没什么可说的。任何帮助我都会很感激。

编辑:值得注意的是,我已经尝试过systemctl enable monit但它已经启用。

编辑2:(不相关)

编辑3:

[root@stage-web-1 vagrant]# systemctl status monit
monit.service - Pro-active monitoring utility for unix systems
Loaded: loaded (/usr/lib/systemd/system/monit.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Thu 2017-06-01 16:37:00 UTC; 6min ago
Process: 1131 ExecStop=/usr/bin/monit quit (code=exited, status=1/FAILURE)
Process: 1079 ExecStart=/usr/bin/monit -I (code=exited, status=1/FAILURE)
Main PID: 1079 (code=exited, status=1/FAILURE)

Jun 01 16:37:00 stage-web-1 systemd[1]: Started Pro-active monitoring utility for unix systems.
Jun 01 16:37:00 stage-web-1 systemd[1]: Starting Pro-active monitoring utility for unix systems...
Jun 01 16:37:00 stage-web-1 monit[1079]: Error opening the log file '/var/www/html/nfs/monit/stage-web-1.log' for writing -- No such file or directory
Jun 01 16:37:00 stage-web-1 systemd[1]: monit.service: main process exited, code=exited, status=1/FAILURE
Jun 01 16:37:00 stage-web-1 monit[1131]: Error opening the log file '/var/www/html/nfs/monit/stage-web-1.log' for writing -- No such file or directory
Jun 01 16:37:00 stage-web-1 systemd[1]: monit.service: control process exited, code=exited status=1
Jun 01 16:37:00 stage-web-1 systemd[1]: Unit monit.service entered failed state.
Jun 01 16:37:00 stage-web-1 systemd[1]: monit.service failed.

答案1

事实证明,/var/www/html/nfs是一个通过 NFS 挂载到网络驱动器的文件夹。Monit 在 NFS 之前启动,因此该文件夹尚不存在,导致 monit 出现错误Error opening the log file '/var/www/html/nfs/monit/stage-web-1.log' for writing -- No such file or directory

解决方案是编辑/lib/systemd/system/monit.service

[Unit]
Description=Pro-active monitoring utility for unix systems
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/monit -I
ExecStop=/usr/bin/monit quit
ExecReload=/usr/bin/monit reload

[Install]
WantedBy=multi-user.target

并添加nfs.serviceAfter部分。最终结果如下:

[Unit]
Description=Pro-active monitoring utility for unix systems
After=network.target nfs.service

[Service]
Type=simple
ExecStart=/usr/bin/monit -I
ExecStop=/usr/bin/monit quit
ExecReload=/usr/bin/monit reload

[Install]
WantedBy=multi-user.target

Monit 现在可以在启动时正确启动 :)

感谢所有帮助我走向正确方向的人。

相关内容