Только выделить сторону Debian:
Предыдущий выпуск Debian - Травление (8-го апреля 2007) - шло с PHP 5.2.0.
Текущий выпуск Debian - Lenny (14-го февраля 2009) - шел с PHP 5.2.6.
Если должны быть какие-либо основные обновления пакетов во время цикла выпуска, те версии обычно доступны по backports.org, если у них есть значимая база пользователей. Полный список бэкпортированных пакетов, доступных Lenny, может быть найден здесь. Этот список относительно короток на данный момент, так как последнему выпуску только несколько месяцев.
Для наблюдения определенных версий для PHP и других пакетов в Debian, можно использовать packages.debian.org.
Необходимо попытаться запустить скрипт на "экране".
screen -D -m run1.sh
И затем можно схватить экран с:
screen -r
Проблема состоит в том, что сценарий на самом деле заканчивается, но если он оставит другую программу подключенной к терминалу (фоновой обработкой это), то затем SSH все еще сохранит соединение присоединенным.
использование nohup
просто позволяет оболочке знать, что, если внешний объект отправляет сигналы зависания, они должны быть проигнорированы, но это не делает на самом деле, разъединяет программу от консоли.
Я не знаю так или иначе для явного разъединения программы от терминала, но одна вещь, которую можно сделать, отправляют Сигнал HUP в сессию SSH, которая запустила скрипт с помощью команды
kill -HUP $PPID
это завершит соединение SSH и оставит выполнение программы, но вызов ssh клиент получит ужасное "соединение, закрытое удаленным хостом" сообщение об ошибке.
-t
). -T
отключает это, выполняя интерактивную оболочку. Так tty или никакой tty - под управлением программа, которая присоединена к консоли, предотвращает корректное завершение работы SSH.
– Guss
5 October 2009 в 18:10
ssh myhost "nohup bin/run1.sh"
Должен добиться цели.
Я полагаю, что Вы корректны о nohup. В run1.sh попытайтесь изменить последнюю строку на:
nohup ./bin/run2.sh $JBOSS_HOSTNAME | logpipe $JBOSS_DIST/log/server.log 2>&1 &
В дополнение к ssh-t упомянутый выше, то, которое я думаю, будет работать, несомненно, необходимо будет закрыть все исходные данные сценария и выводы:
ssh myhost "bin/run1.sh > yourlog 2>&1 < /dev/null"
Весь кредит к OpenSSH FAQ, где я нашел это несколько лет назад.
Что происходит если run1.sh источники run2.sh?:
. ./bin/run2.sh $JBOSS_HOSTNAME | logpipe $JBOSS_DIST/log/server.log 2>&1 &