У меня настроено задание cron, которое запустит мой скрипт.
Цель этого сценария - убить процесс, который в данный момент выполняется, и запустить новую версию этого процесса (CHECKDB). CHECKDB должен быть запущен все время, поэтому у нас есть скрипт start_checkdb, который по сути представляет собой бесконечный цикл, который выполняет CHECKDB; если он падает, он остается в цикле, запускает его снова. [да, я понимаю, что это не лучшая практика, но дело не в этом]
Мой скрипт будет вызван cron без проблем, а затем он убьет CHECKDB без проблем. Насколько я могу судить, вызывается дочерний скрипт, который запускает резервное копирование CHECKDB, но каждый раз, когда я проверяю ps после запуска cron, процесс не запускается. Если я запускаю сценарий вручную в командной строке, под любой оболочкой, это не проблема: убивает CHECKDB и start_checkdb, запускает start_checkdb, который запускает CHECKDB.
Однако по какой-то причине, когда cron делает это, процесс никогда не запускается впоследствии. Он убивает живого и либо не запускает его, либо запускает и убивает.
Возможно ли, что когда cron завершит родительский процесс, он уничтожит вызванные дочерние процессы?
Я не знаю, имеет ли это значение, но это на Solaris 8.