[sisyphus] Новый инитскрипт для pptp-client
Yura Zotov
=?iso-8859-1?q?yznews_=CE=C1_hotbox=2Eru?=
Пт Май 30 15:30:26 MSD 2003
В аттаче новый инитскрипт, которым я планирую заменить
/etc/init.d/pptptunnel в новой версии пакета. Прошу всех
заинтересованных посмотреть, попробовать и высказать
замечание/предложения. Будет работать только для
pptp-client >= 1.1.0.
Изменения по сравнению со старой версией:
1. имя туннеля для старта должно быть ЯВНО указано в переменной
PPTP_TUNNEL в /etc/sysconfig/pptp
2. при старте туннеля не будут добавлены маршруты, определённые
при настройке туннеля командой pptp-command. Маршруты также
нужно добавлять в /etc/ppp/ip-up.local.
3. теперь этот скрипт НЕ устанавливает HOSTNAME, так что если, вам
нужно менять имя машины после старта туннеля, делайте это из
/etc/ppp/ip-up.local
1 и 2 из-за того, что для старта туннеля теперь не используется
pptp-command start. 3, потому что я считаю /etc/ppp/ip-up.local
более правильным.
Для старта pppd используется параметр linkname, чтобы заранее
знать имя PID-файла. Будьте внимательны, и не используйте этот
параметр в собственных файлах настроек для pppd, относящихся к
данному туннелю. Также для старта pppd используется параметр
updetach. Из-за этого использование в настройках pppd параметра
persist может надолго остановить старт туннеля и системы, если
pptp не сможет установить соединение.
По вопросам настроек pppd -- man pppd.
Замечания и предложения приветствуются.
--
Юрий А. Зотов
----------- следующая часть -----------
#! /bin/sh
#
# chkconfig: - 11 89
# description: Starts and stops PPTP connection.
# processname: pptptunnel
# config: /etc/sysconfig/network
# config: /etc/sysconfig/pptp
WITHOUT_RC_COMPAT=1
# Source function library.
. /etc/init.d/functions
SourceIfNotEmpty /etc/sysconfig/network
SourceIfNotEmpty /etc/sysconfig/pptp
PIDFILE=/var/run/ppp-$PPTP_TUNNEL.pid
LOCKFILE=/var/lock/subsys/pptptunnel
RETVAL=0
SERVICE_NAME="\"$PPTP_TUNNEL\" PPTP tunnel"
start()
{
msg_starting "$SERVICE_NAME"
if [ "x$PPTP_TUNNEL" = "x" ]; then
echo -n "tunnel not defined!"
failure "tunnel not defined!"
exit 1
fi
start_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user root --no-announce -- \
pppd call $PPTP_TUNNEL linkname $PPTP_TUNNEL updetach
RETVAL=$?
return $RETVAL
}
stop()
{
msg_stopping "$SERVICE_NAME"
stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user root --no-announce pppd
RETVAL=$?
return $RETVAL
}
restart()
{
stop
start
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
condstop)
if [ -e "$LOCKFILE" ]; then
stop
fi
;;
condrestart)
if [ -e "$LOCKFILE" ]; then
restart
fi
;;
condreload)
if [ -e "$LOCKFILE" ]; then
restart
fi
;;
status)
msg_already_running "$SERVICE_NAME"
echo
status --pidfile "$PIDFILE" --expect-user root --no-anounce pppd
RETVAL=$?
;;
*)
msg_usage "${0##*/} {start|stop|restart|reload|condstop|condrestart|condreload|status}"
RETVAL=1
esac
exit $RETVAL
Подробная информация о списке рассылки Sisyphus