Хотите поблагодарить автора блога - жмите здесь !
1 2 0
1 2 0

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

среда, июля 03, 2013

Скрипт перезапуска тунеля vtund в OPENWRT (любой программы под любым Linux)

При использовании 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 не обнаруживается, скрипт запускает команду, которую  Вы указали вторым аргументом при его запуске. Второй аргумент. обязательно указывать в "двойных кавычках", иначе скрипт его воспримет как "много аргументов" и будет работать не правильно.

Комментариев нет:

Отправить комментарий

Закрыть окно X
Пожалуйста, потратьте несколько секунд на поддержку блога и его автора
Нажмите на рекламную ссылку: Рекламная ссылка для поддержки блога, или на баннер вверху справа страницы.