При использовании VTUN, столкнулся с тем, что при более-менее долгом падении связи у прова, или при каких либо ее нарушениях, клиентская часть тоннеля, даже если стоит "persistent", может "упасть", и после восстановления связи уже не восстановиться. так как сама программа "выпадает" из памяти. Это не совсем удобно, когда нужно чтобы туннель стоял "железно". Для решения вопроса был применен вот такой скрипт:
#!/bin/sh
PROCESS="$1"
PROCANDARGS="$2"
date > /var/log/ProcRestart.log
echo ======================================= >> /var/log/ProcRestart.log
while :
do
RESULT=`pgrep ${PROCESS}`
if [ "${RESULT:-null}" = null ]; then
date >> /var/log/ProcRestart.log
echo "${PROCESS} not running, starting "$PROCANDARGS >> /var/log/ProcRestart.log
$PROCANDARGS &
fi
sleep 30
done
Для запуска используется вот такой формат:
ProcRestart.sh КлючПоискаВps "строка перезапуска" - программа и ее аргументы/
ProcRestart.sh - имя скрипта.
Если используете в rc.local, то в конце строки запуска добавляете "&"
После запуска, он проверяет наличие в процессах строки, включающей в себя "КлючПоискаВps" - например имя туннеля. Старайтесь только имя выбирать так, чтобы не оказалось процессов, которые при просмотре через ps, имеют такую же строку, иначе скрипт будет работать не правильно.
И если таковой строки в ps не обнаруживается, скрипт запускает команду, которую Вы указали вторым аргументом при его запуске. Второй аргумент. обязательно указывать в "двойных кавычках", иначе скрипт его воспримет как "много аргументов" и будет работать не правильно.
#!/bin/sh
PROCESS="$1"
PROCANDARGS="$2"
date > /var/log/ProcRestart.log
echo ======================================= >> /var/log/ProcRestart.log
while :
do
RESULT=`pgrep ${PROCESS}`
if [ "${RESULT:-null}" = null ]; then
date >> /var/log/ProcRestart.log
echo "${PROCESS} not running, starting "$PROCANDARGS >> /var/log/ProcRestart.log
$PROCANDARGS &
fi
sleep 30
done
Для запуска используется вот такой формат:
ProcRestart.sh КлючПоискаВps "строка перезапуска" - программа и ее аргументы/
ProcRestart.sh - имя скрипта.
Если используете в rc.local, то в конце строки запуска добавляете "&"
После запуска, он проверяет наличие в процессах строки, включающей в себя "КлючПоискаВps" - например имя туннеля. Старайтесь только имя выбирать так, чтобы не оказалось процессов, которые при просмотре через ps, имеют такую же строку, иначе скрипт будет работать не правильно.
И если таковой строки в ps не обнаруживается, скрипт запускает команду, которую Вы указали вторым аргументом при его запуске. Второй аргумент. обязательно указывать в "двойных кавычках", иначе скрипт его воспримет как "много аргументов" и будет работать не правильно.
Комментариев нет:
Отправить комментарий