У меня есть скрипт, который запускает многие процессы в фоновом режиме и использует поЬир, чтобы убедиться, что эти процессы продолжает работать -Запуск фонового процесса Unix поддержания порядка
nohup "./$__service_script1.pl" $__service_args </dev/null> /var/log/$__service_name.log 2>&1 &
Проблема является для меня важно, чтобы убедиться, что процессы начинаются в порядке их вызова. Их способ подождать, пока процесс определенно не начался, прежде чем пытаться начать другой процесс?
Я попытался подождать, но он ждет, пока процесс не завершится, я просто хочу убедиться, что процесс запущен. Вероятно, самым простым решением было бы поспать в течение нескольких секунд между процессами, есть ли лучшее решение?
Благодаря
Другим наивным решением будет опрос 'ps | grep $ __ service_name' для соответствующей записи, стараясь не получить «nohup». Или вы можете добавить дополнительный уровень загрузки, создав программу для fork и запустив службу, дождитесь появления PID, а затем уведомите сценарий инициализации. Имейте в виду, что как только один из ваших сервисов должен быть перезапущен, он будет не в порядке. Это может произойти даже при первом запуске. – paddy
Назовите их одним скриптом _umbrella_ master и только NOHUP - мастер-скрипт? (или объединить их всех и называть целую связку. Или их цепочка) – wildplasser
будет работать, называет ли их один мастер-скрипт и мастер-скрипт nohup убедиться, что процессы, запущенные с этого сценария, не умирают после выхода из этого сценария? Попробуйте это решение. –