⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 openvpn.init

📁 OpenVPN is a robust and highly flexible tunneling application that uses all of the encryption, authe
💻 INIT
字号:
#!/bin/sh## openvpn       This shell script takes care of starting and stopping#               openvpn on RedHat or other chkconfig-based system.## chkconfig: 345 80 30## description: OpenVPN is a robust and highly flexible tunneling application that#              uses all of the encryption, authentication, and certification features#              of the OpenSSL library to securely tunnel IP networks over a single#              UDP port.## Contributed to the OpenVPN project by# Douglas Keller <doug@voidstar.dyndns.org># 2002.05.15# To install:#   copy this file to /etc/rc.d/init.d/openvpn#   shell> chkconfig --add openvpn#   shell> mkdir /etc/openvpn#   make .conf or .sh files in /etc/openvpn (see below)# To uninstall:#   run: chkconfig --del openvpn# Author's Notes:## I have created an /etc/init.d init script and enhanced openvpn.spec to# automatically register the init script.  Once the RPM is installed you# can start and stop OpenVPN with "service openvpn start" and "service# openvpn stop".## The init script does the following:## - Starts an openvpn process for each .conf file it finds in#   /etc/openvpn.## - If /etc/openvpn/xxx.sh exists for a xxx.conf file then it executes#   it before starting openvpn (useful for doing openvpn --mktun...).## - In addition to start/stop you can do:##   service openvpn reload - SIGHUP#   service openvpn reopen - SIGUSR1#   service openvpn status - SIGUSR2# Modifications 2003.05.02#   * Changed == to = for sh compliance (Bishop Clark).#   * If condrestart|reload|reopen|status, check that we were#     actually started (James Yonan).#   * Added lock, piddir, and work variables (James Yonan).#   * If start is attempted twice, without an intervening stop, or#     if start is attempted when previous start was not properly#     shut down, then kill any previously started processes, before#     commencing new start operation (James Yonan).#   * Do a better job of flagging errors on start, and properly#     returning success or failure status to caller (James Yonan).# Location of openvpn binaryopenvpn="/usr/sbin/openvpn"# Lockfilelock="/var/lock/subsys/openvpn"# PID directorypiddir="/var/run/openvpn"# Our working directorywork=/etc/openvpn# Source function library.. /etc/rc.d/init.d/functions# Source networking configuration.. /etc/sysconfig/network# Check that networking is up.[ ${NETWORKING} = "no" ] && exit 0[ -f  $openvpn ] || exit 0# See how we were called.case "$1" in  start)	echo -n $"Starting openvpn: "	/sbin/modprobe tun >/dev/null 2>&1	# From a security perspective, I think it makes	# sense to remove this, and have users who need	# it explictly enable in their --up scripts or	# firewall setups.	#echo 1 > /proc/sys/net/ipv4/ip_forward	if [ ! -d  $piddir ]; then	    mkdir $piddir	fi	if [ -f $lock ]; then	    # we were not shut down correctly	    for pidf in `/bin/ls $piddir/*.pid 2>/dev/null`; do	      if [ -s $pidf ]; then		kill `cat $pidf` >/dev/null 2>&1	      fi	      rm -f $pidf	    done	    rm -f $lock	    sleep 2	fi	rm -f $piddir/*.pid	cd $work	# Start every .conf in $work and run .sh if exists	errors=0	successes=0	for c in `/bin/ls *.conf 2>/dev/null`; do	    bn=${c%%.conf}	    if [ -f "$bn.sh" ]; then		. $bn.sh	    fi	    rm -f $piddir/$bn.pid	    $openvpn --daemon --writepid $piddir/$bn.pid --config $c --cd $work	    if [ $? = 0 ]; then		successes=1	    else		errors=1	    fi	done	if [ $errors = 1 ]; then	    failure; echo	else	    success; echo	fi	if [ $successes = 1 ]; then	    touch $lock	fi	;;  stop)	echo -n $"Shutting down openvpn: "	for pidf in `/bin/ls $piddir/*.pid 2>/dev/null`; do	  if [ -s $pidf ]; then	    kill `cat $pidf` >/dev/null 2>&1	  fi	  rm -f $pidf	done	success; echo	rm -f $lock	;;  restart)	$0 stop	sleep 2	$0 start	;;  reload)	if [ -f $lock ]; then	    for pidf in `/bin/ls $piddir/*.pid 2>/dev/null`; do		if [ -s $pidf ]; then		    kill -HUP `cat $pidf` >/dev/null 2>&1		fi	    done	else	    echo "openvpn: service not started"	    exit 1	fi	;;  reopen)	if [ -f $lock ]; then	    for pidf in `/bin/ls $piddir/*.pid 2>/dev/null`; do		if [ -s $pidf ]; then		    kill -USR1 `cat $pidf` >/dev/null 2>&1		fi	    done	else	    echo "openvpn: service not started"	    exit 1	fi	;;  condrestart)	if [ -f $lock ]; then	    $0 stop	    # avoid race	    sleep 2	    $0 start	fi	;;  status)	if [ -f $lock ]; then	    for pidf in `/bin/ls $piddir/*.pid 2>/dev/null`; do		if [ -s $pidf ]; then		    kill -USR2 `cat $pidf` >/dev/null 2>&1		fi	    done	    echo "Status written to /var/log/messages"	else	    echo "openvpn: service not started"	    exit 1	fi        ;;  *)	echo "Usage: openvpn {start|stop|restart|condrestart|reload|reopen|status}"	exit 1esacexit 0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -