📄 openvpn.init
字号:
#!/sbin/runscript# OpenVPN start/stop script# Adapted to Gentoo by James Yonan# Originally Contributed to the OpenVPN project by# Douglas Keller <doug@voidstar.dyndns.org># 2002.05.15# This 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# Location of openvpn binaryopenvpn=/usr/local/sbin/openvpn# PID directorypiddir=/var/run/openvpn# Our working directory (.conf files should be here)work=/etc/openvpn# Our optionsopts="start stop restart condrestart"depend() { need net use dns}start() { ebegin "Starting OpenVPN" # Load the TUN/TAP module /sbin/modprobe tun >/dev/null 2>&1 if [ ! -d $piddir ]; then mkdir $piddir fi cd $work # Start every .conf in $work and run .sh if exists local errors=0 local successes=0 local retstatus=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 openvpn-$bn --writepid $piddir/$bn.pid --config $c --cd $work if [ $? = 0 ]; then successes=1 else errors=1 fi done # Decide status based on errors/successes. # If at least one tunnel succeeded, we return success. # If some tunnels succeeded and some failed, we return # success but give a warning. if [ $successes = 1 ]; then if [ $errors = 1 ]; then ewarn "Note: At least one OpenVPN tunnel failed to start" fi else retstatus=1 if [ $errors = 0 ]; then ewarn "Note: No OpenVPN configuration files were found in $work" fi fi eend $retstatus "Error starting OpenVPN"}stop() { ebegin "Stopping 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 eend 0}# this should really be in runscript.shstarted() { if [ -L "${svcdir}/started/${myservice}" ]; then return 1 else return 0 fi}# attempt to restart ONLY if we are already startedcondrestart() { started || restart}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -