У меня есть скрипт, который должен запускать другой скрипт в фоновом режиме:
#!/bin/bash
( cd /var/lib/docker/volumes/hostcontrol-pipe/_data/ && ./run-pipe.sh ) &
Сначала он меняет каталог и запускает скрипт. run-pipe. sh создает именованные каналы в своем каталоге. И у меня есть файл конфигурации monit для мониторинга этого скрипта и его перезапуска, если он не запущен:
check program check-pipe with path /bin/bash -c "echo 'ping' > /var/lib/docker/volumes/hostcontrol-pipe/_data/host-pipe" with timeout 1 seconds
if status != 0 then
restart
start program = "/var/lib/docker/volumes/hostcontrol-pipe/_data/monit.sh"
Первая строка проверяет, что скрипт выполняет запись в свой канал, он работает. Строка «Запустить программу» не работает - скрипт не запускается и в «ps ax» отсутствует. Но я вижу в "sudo monit -vI":
'check-pipe' start: '/var/lib/docker/volumes/hostcontrol-pipe/_data/monit.sh'
'check-pipe' started
'check-pipe' program started
Итак, почему monit не может запустить скрипт? Я пробовал разные варианты, но не могу запустить его. Я могу запустить его, не меняя каталог (cd), но это не обязательно.