Несколько *Почти* идентичные процессы на Сервере Linux

Вы могли перенести все свои страницы в сценарии, который выглядит примерно так:

$ bzcat 1.bz2

Где 1$ является требуемым файлом. Быстрый PHP/Perl/whatever сценарий может довольно эффективно вытащить путь из переменных запроса, и там Вы идете.

Вы действительно теряете скорость статических файлов, но это не могло бы иметь значения для Вашего варианта использования.

0
задан 18 July 2009 в 18:00
3 ответа

Я утверждал бы, что, если процесс перестал работать, необходимо зафиксировать его для не сбоя больше.

Чтобы сделать, что Вы ожидаете, что-то вроде этого было бы достаточно (непротестированный, используйте на Ваш собственный риск):

#!/bin/bash
for i in $(seq 1 4)
do
  (
    echo "Starting node $i..."
    while ! java -DNodeNumber=$i CalculationNode
    do
      sleep 1
      echo "Restarting node $i..."
    done
  ) &
done
wait

Каждый процесс должен закончиться с нулем кода выхода для повреждения цикла. Иначе это перезапущено сценарием.

2
ответ дан 4 December 2019 в 15:31

Решение Juliano могло бы работать в простых случаях, но оно не покрывает каждую ситуацию. Например, один из Ваших процессов мог выйти со статусом выхода 0 даже при том, что ошибка произошла, если существует ошибка в коде обработки ошибок. Или это могло зайти в тупик или столкнуться с некоторым другим видом бесконечного цикла, не делая ничего полезного.

Таким образом, если Вы хотите более необычное решение, попробуйте Nagios. Это позволяет Вам писать плагины для специальных контрольных задач.

0
ответ дан 4 December 2019 в 15:31

Вы могли всегда использовать daemontools, чтобы контролировать и перезапустить Ваши процессы.

0
ответ дан 4 December 2019 в 15:31

Теги

Похожие вопросы