#!/bin/sh # rc script for Cisco Secure Client VPN agent on Slackware AGENT=/opt/cisco/secureclient/bin/vpnagentd LOAD_TUN=/opt/cisco/secureclient/bin/load_tun.sh PIDFILE=/var/run/vpnagentd.pid start() { if pgrep -x vpnagentd >/dev/null 2>&1; then echo "vpnagentd is already running." return 0 fi if [ ! -x "$AGENT" ]; then echo "Missing executable: $AGENT" return 1 fi if [ -x "$LOAD_TUN" ]; then "$LOAD_TUN" || return 1 fi echo "Starting vpnagentd..." "$AGENT" -execv_instance >/dev/null 2>&1 & sleep 2 if pgrep -x vpnagentd >/dev/null 2>&1; then echo "vpnagentd started." return 0 fi echo "vpnagentd failed to start." return 1 } stop() { if ! pgrep -x vpnagentd >/dev/null 2>&1; then echo "vpnagentd is not running." rm -f "$PIDFILE" return 0 fi echo "Stopping vpnagentd..." killall vpnagentd >/dev/null 2>&1 sleep 2 rm -f "$PIDFILE" if pgrep -x vpnagentd >/dev/null 2>&1; then echo "vpnagentd did not stop cleanly." return 1 fi echo "vpnagentd stopped." } restart() { stop || return 1 start } status() { if pgrep -x vpnagentd >/dev/null 2>&1; then echo "vpnagentd is running." return 0 fi echo "vpnagentd is not running." return 1 } case "$1" in start) start ;; stop) stop ;; restart) restart ;; status) status ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 ;; esac