[devel] Стартовый скрипт для установки PPTP соединения
Yura Zotov
=?iso-8859-1?q?yznews_=CE=C1_hotbox=2Eru?=
Пн Окт 15 15:02:40 MSD 2001
Здравствуйте.
Я тут написал стартовый скрипт для pptp-client. Посмотрите,
пожалуйста, кому не лень, выскажите замечания, предложения и т.п.
Особенно меня интересует мнение более опытных людей насчет
использования временного файла в строках 26-31. $pptp_command -
это перлина. При перенаправлении ее вывода куда-либо, кроме
файла, процесс останавливается и ждет непонятно чего. По Ctrl-C
все прерывается. Кто знает, как сделать лучше, поделитесь,
пожалуйста, опытом.
Скрипт прицеплен.
Заранее спасибо за помощь.
--
Юрий А. Зотов
----------- следующая часть -----------
#! /bin/sh
#
# chkconfig: 2345 11 89
# description: Starts and stops PPTP connection.
# processname: pptpinit
# Source function library.
. /etc/rc.d/init.d/functions
# Get config.
SourceIfNotEmpty /etc/sysconfig/network
SourceIfNotEmpty /etc/sysconfig/pptp
# Check that networking is up.
[ "$NETWORKING" != "no" ] || exit
[ "$PPTP_ONBOOT" != "no" ] || exit
LOCKFILE=/var/lock/subsys/pptp
RETVAL=0
pptp_command=/usr/local/bin/pptp-command
start()
{
echo -n "Starting PPTP connection: "
if [ $PPTP_SET_HOSTNAME = "yes" ]; then
TMPFILE=`mktemp /tmp/pptp.XXXXXX`
if [ -f $TMPFILE ]; then
$pptp_command start $PPTP_TUNNEL > $TMPFILE
RETVAL=$?
IPADDR=`cat $TMPFILE | awk -F"IP Address: " '/IP Address/ {print $2}'`
rm -f $TMPFILE
if [ $RETVAL -eq 0 ]; then
echo
echo "IP Address: $IPADDR"
HOSTNAME=`nslookup $IPADDR | grep Name | awk '{print $2}'`
if [ "x$HOSTNAME" != "x" ]; then
echo -n "Name: $HOSTNAME"
hostname $HOSTNAME
success
echo
else
echo -n "Hostname lookup failed"
failure
echo
exit 1;
fi
fi
touch "$LOCKFILE"
fi
else
$pptp_command start $PPTP_TUNNEL
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
success
echo
else
failure
echo
fi
fi
}
stop()
{
echo -n "Shutting down PPTP connection: "
$pptp_command stop &>/dev/null
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
rm -f "$LOCKFILE"
success
echo
fi
}
restart()
{
stop
start
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status pptp
RETVAL=$?
;;
restart)
restart
;;
*)
echo "Usage: ${0##*/} {start|stop|status|restart}"
RETVAL=1
esac
exit $RETVAL
Подробная информация о списке рассылки Devel