📄 poff
字号:
#!/bin/sh# $Id: poff,v 1.8 1999/08/28 16:34:51 phil Exp $# Written by John Hasler <john@dhh.gt.org> and based on work # by Phil Hands <phil@hands.com>. Distributed under the GNU GPLif [ -x /usr/bin/kill ]; then KILL="/usr/bin/kill"else KILL="/bin/kill"fiSIG=TERMDONE="stopped"MODE=""usage (){ cat <<!EOF!usage: $0 [option] [provider]options: -r Cause pppd to drop the line and redial. -d Toggle the state of pppd's debug option. -c Cause pppd to renegotiate compression. -a Stop all pppd's. 'provider' will be ignored. -h Print this help summary and exit. -v Print version and exit. none Stop pppd.Options may not be combined.If 'provider' is omitted pppd will be stopped or signalled if and only ifthere is exactly one running unless the '-a' option was given. If'provider' is supplied the pppd controlling the connection to thatprovider will be stopped or signalled.!EOF!}# Get option. If there are none replace the "?" that getopts puts in# FLAG on error with "null".getopts rdcavh FLAGif [ "$?" -ne 0 ]; then FLAG="null"fi# Check for additional options. Should be none.getopts :rdcavh DUMMYif [ "$?" -eq 0 ]; then echo "$0: Illegal option -- ${OPTARG}." exit 1ficase $FLAG in "r") SIG=HUP; DONE=signalled; shift ;; "d") SIG=USR1; DONE=signalled; shift ;; "c") SIG=USR2; DONE=signalled; shift ;; "a") MODE="all"; shift ;; "v") echo "$0$Revision: 1.8 $_TrickToPrint_RCS_Revision"; exit 0 ;; "h") usage; exit 0 ;; "?") exit 1;esac# Get the PIDs of all the pppds running. Could also get these from# /var/run, but pppd doesn't create .pid files until ppp is up.PIDS=$(pidof pppd)# poff is pointless if pppd isn't running.if [ -z "$PIDS" ]; then echo "$0: No pppd is running. None ${DONE}." exit 1fi# Find out how many pppd's are running.N=$(echo "$PIDS" | wc -w)# If there are no arguments we can't do anything if there is more than one# pppd running.if [ "$#" -eq 0 -a "$N" -gt 1 -a $FLAG != "a" ]; then echo "$0: More than one pppd running and no "-a" option and no arguments supplied. Nothing ${DONE}." exit 1fi# If either there are no arguments or '-a' was specified kill all the# pppd's.if [ "$#" -eq 0 -o "$MODE" = "all" ]; then $KILL -$SIG $PIDS || { echo "$0: $KILL failed. None ${DONE}." exit 1 } exit 0fi# There is an argument, so kill the pppd started on that provider.PEER=$(echo $1 | sed -e 's#/#\\/#g')PID=$(ps -o pid,cmd axw | awk "/^ *[0-9]* *(\/usr\/sbin\/)?pppd call $PEER( |\$)/ {print \$1}")if [ "$PID" ]; then $KILL -$SIG $PID || { echo "$0: $KILL failed. None ${DONE}." exit 1 }else echo "$0: I could not find a pppd process for provider '$1'. None ${DONE}." exit 1fiexit 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -