У меня monit настроен для монтирования файловой системы NFS, если она когда-либо не монтировалась, однако по какой-то причине monit не монтирует общий ресурс автоматически, и мне нужно запустить monit start myshare
чтобы смонтировать файловую систему.
Система часто не может смонтировать общие ресурсы NFS во время загрузки (поскольку удаленная система обычно загружается одновременно и еще не работает), поэтому я хочу, чтобы monit продолжал повторять попытки монтирования, что в конечном итоге будет успешным, когда удаленный система завершает загрузку.
Однако кажется, что monit слишком быстро сдается и перестает пытаться, то есть мне приходится вручную запускать monit start myshare
чтобы заставить его попробовать еще раз. Это всегда удается, предлагая start
командовать в monitrc
правильно.
В руководстве по monit я вижу, как ограничить службу, чтобы она перестала пытаться после определенного количества сбоев, но я не вижу, как отключить это, поэтому он просто продолжает пытаться вечно.
Вот мой monitrc
:
set daemon 30
set log syslog
set mailserver ...
check filesystem myshare with path /mnt/myshare
start program = "/bin/mount /mnt/myshare"
group nfs
И вот что он говорит после загрузки машины:
$ monit status myshare
Filesystem 'myshare'
status Execution failed
monitoring status Monitored
monitoring mode active
on reboot start
filesystem type nfs
$ monit start myshare
$ monit status myshare
Monit 5.25.1 uptime: 5d 10h 32m
Filesystem 'myshare'
status OK
monitoring status Monitored
monitoring mode active
on reboot start
filesystem type nfs
Что мне не хватает?
Вы должны проверять наличие файла флага, только когда монтирование в порядке, например, и повторять попытки на регулярной основе.
check file myshare-flag with path /mnt/myshare/my-flag-file
if does not exist then exec "/bin/mount /mnt/myshare" repeat every 2 cycles
Лучше проверить файл флага, так как файл будет присутствовать только при работе монтирования.