У меня есть центральный сервер, где я периодически запускаю скрипт (из cron), который проверяет удаленные серверы. Проверка выполняется последовательно, так что сначала один сервер, затем другой ....Запуск процесса из сценария bash не удалось
Этот скрипт (с центрального сервера) запускает другой скрипт (позволяет называть его update.sh) на удаленной машине, и что скрипт (на удаленной машине) делает что-то вроде этого:
processID=`pgrep "processName"`
kill $processID
startProcess.sh
процесс был убит, а затем в сценарии startProcess.sh начал так:
pidof "processName"
if [ ! $? -eq 0 ]; then
nohup "processName" "processArgs" >> "processLog" &
pidof "processName"
if [! $? -eq 0]; then
echo "Error: failed to start process"
...
update.sh, startprocess.sh и двоичном процесса, который начинается это на NFS монтируется с центрального сервера ,
Теперь, что происходит иногда, заключается в том, что процесс, который я пытаюсь запустить в startprocess.sh, не запускается, и я получаю ошибку. Странная часть состоит в том, что она случайна, когда-то процесс на одной машине запускается, а другое время на этой же машине не запускается. Я проверяю около 300 серверов, и ошибки всегда случайны.
Другое дело, что удаленные серверы расположены в 3 разных географических местоположениях (2 в Америке и 1 в Европе), центральный сервер находится в Европе. Из того, что я обнаружил до сих пор, является то, что серверы в Америке имеют гораздо больше ошибок, чем в Европе.
Сначала я подумал, что ошибка должна иметь какое-то отношение к убийству, поэтому я добавил сон между kill и startprocess.sh, но это не имело никакого значения.
Кроме того, кажется, что процесс от startprocess.sh не запускается вообще, или что-то с ним происходит прямо при его начала, потому что нет выхода в лог-файл и там должен быть выход в журнальный файл.
Итак, я прошу помощи
ли кто-нибудь имел такого рода проблемы, или знает, что может быть не так?
Спасибо за любую помощь
Я подозреваю, что вы можете сделать лучше на [Server Fault] (http://serverfault.com/), чем на переполнение стека. Ваши симптомы звучат как трансатлантические связи, вероятно, медленнее, и операции NFS с большей вероятностью могут закончиться. Если программное обеспечение автоматизировано, возможно, что соответствующие каталоги недоступны, когда команды выходят из строя, но доступны, когда команды преуспевают; Я видел такие проблемы в предыдущей жизни. Там также есть «если у вас достаточно машин, что-то всегда терпит неудачу». Работает с тысячами машин, а не сотнями молотков, которые дома. –