Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE
dhcp
dhcrelay.script
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File dhcrelay.script of Package dhcp
#! /bin/sh # Copyright (c) 1996, 1997, 1998 S.u.S.E. GmbH # Copyright (c) 1998, 1999, 2000, 2001 SuSE GmbH # Copyright (c) 2002 SuSE Linux AG # Copyright (c) 2003-2014 SUSE LINUX Products GmbH # # Author: Peter Poeml <poeml@suse.de>, 2001 # Marius Tomaschewski <mt@suse.de>, 2010 # # /usr/lib/dhcp/dhcrelay helper, # fromer /etc/init.d/dhcrelay init script # ### DHCPv_OPT=$1 ; shift case $DHCPv_OPT in -4) DAEMON="ISC DHCPv4 relay agent" DAEMON_BIN=/usr/sbin/dhcrelay DAEMON_CONF=/etc/sysconfig/dhcrelay DAEMON_PIDFILE=/run/dhcrelay.pid STARTPROC_LOGFILE=/var/log/rc.dhcrelay.log SUPPORTS_HUP="no" ;; -6) DAEMON="ISC DHCPv6 relay agent" DAEMON_BIN=/usr/sbin/dhcrelay6 DAEMON_CONF=/etc/sysconfig/dhcrelay DAEMON_PIDFILE=/run/dhcrelay6.pid STARTPROC_LOGFILE=/var/log/rc.dhcrelay6.log ;; *) echo >&2 "Usage: $0 <-4|-6> <action>" exit 2 ;; esac test -s "$DAEMON_CONF" && . "$DAEMON_CONF" if ! [ -x "$DAEMON_BIN" ]; then case $1 in stop) ;; *) echo -n >&2 "$0: \"$DAEMON_BIN\" is not an executable file. Exiting." case $1 in status) exit 4 ;; *) exit 5 ;; esac ;; esac exit 0 fi # Return values acc. to LSB for all commands but status: # 0 - success # 1 - generic or unspecified error # 2 - invalid or excess argument(s) # 3 - unimplemented feature (e.g. "reload") # 4 - insufficient privilege # 5 - program is not installed # 6 - program is not configured # 7 - program is not running # # Note that starting an already running service, stopping # or restarting a not-running service as well as the restart # with force-reload (in case signalling is not supported) are # considered a success. case "$1" in start) # FIXME: this check is pointless since systemd already do it. echo -n "Starting $DAEMON" checkproc -p $DAEMON_PIDFILE $DAEMON_BIN && { echo -n "... already running"; exit 0; } case $DHCPv_OPT in -4) ## If interfaces or servers are not set, skip starting of dhcrelay ## and return with "program not configured" if [ -z "$DHCRELAY_INTERFACES" -o -z "$DHCRELAY_SERVERS" ]; then # service is not configured exit 6; fi DHCRELAY_INTERFACES_ARGS='' for i in $DHCRELAY_INTERFACES ; do DHCRELAY_INTERFACES_ARGS="$DHCRELAY_INTERFACES_ARGS -i $i" done DHCRELAY_ARGS="$DHCRELAY_OPTIONS $DHCRELAY_INTERFACES_ARGS $DHCRELAY_SERVERS" ;; -6) DHCRELAY6_LOWER_INTERFACES_ARGS='' for l in $DHCRELAY6_LOWER_INTERFACES ; do test "x$l" = x -o "x$l" = "x-l" && continue DHCRELAY6_LOWER_INTERFACES_ARGS="$DHCRELAY6_LOWER_INTERFACES_ARGS -l $l" done DHCRELAY6_UPPER_INTERFACES_ARGS='' for u in $DHCRELAY6_UPPER_INTERFACES ; do test "x$u" = x -o "x$u" = "x-u" && continue DHCRELAY6_UPPER_INTERFACES_ARGS="$DHCRELAY6_UPPER_INTERFACES_ARGS -u $u" done if [ "x$DHCRELAY6_LOWER_INTERFACES_ARGS" = x -o \ "x$DHCRELAY6_UPPER_INTERFACES_ARGS" = x ]; then # service is not configured exit 6; fi DHCRELAY_ARGS="$DHCRELAY6_OPTIONS $DHCRELAY6_LOWER_INTERFACES_ARGS $DHCRELAY6_UPPER_INTERFACES_ARGS" ;; esac ## Start daemon with startproc(8). If this fails ## the echo return value is set appropriate. # startproc should return 0, even if service is # already running to match LSB spec. if [ "$2" = "-v" ]; then echo echo -n "executing '$DAEMON_BIN $DHCPv_OPT $DHCRELAY_ARGS'" fi startproc -q -l $STARTPROC_LOGFILE -p $DAEMON_PIDFILE $DAEMON_BIN $DHCPv_OPT $DHCRELAY_ARGS >/dev/null 2>&1 rc=$? if ! [ $rc -eq 0 ]; then ## be verbose echo "" echo -n " please see $STARTPROC_LOGFILE for details " ## set status to failed exit 1 fi ;; stop) echo -n "Shutting down $DAEMON" ## Stop daemon with killproc(8) and if this fails ## set echo the echo return value. killproc -p $DAEMON_PIDFILE $DAEMON_BIN ;; try-restart) ## Do a restart only if the service was active before. ## Note: try-restart is now part of LSB (as of 1.9). ## RH has a similar command named condrestart. $0 status if test $? = 0; then $0 restart fi ;; restart) ## Stop the service and regardless of whether it was ## running or not, start it again. $0 stop sleep 1 $0 start ;; force-reload) ## Signal the daemon to reload its config. Most daemons ## do this on signal 1 (SIGHUP). ## If it does not support it, restart. $0 stop && sleep 1 && $0 start || exit echo -n "Reload service $DAEMON" if [ "$SUPPORTS_HUP" = "yes" ] ; then killproc -p $DAEMON_PIDFILE -HUP $DAEMON_BIN #touch $DAEMON_PIDFILE else $0 stop && $0 start fi ;; reload) ## Like force-reload, but if daemon does not support ## signalling, do nothing (!) if [ "$SUPPORTS_HUP" = "yes" ] ; then # If it supports signalling: echo -n "Reload service $DAEMON" killproc -p $DAEMON_PIDFILE -HUP $DAEMON_BIN #touch $DAEMON_PIDFILE else ## Otherwise if it does not support reload: exit 3 fi ;; status) echo -n "Checking for dhcp relay agent: " ## Check status with checkproc(8), if process is running ## checkproc will return with exit status 0. # Status has a slightly different for the status command: # 0 - service running # 1 - service dead, but /run/ pid file exists # 2 - service dead, but /var/lock/ lock file exists # 3 - service not running # NOTE: checkproc returns LSB compliant status values. checkproc -p $DAEMON_PIDFILE $DAEMON_BIN ;; probe) ## Optional: Probe for the necessity of a reload, ## give out the argument which is required for a reload. if [ "$DAEMON_CONF" -nt "$DAEMON_PIDFILE" ]; then if [ "$SUPPORTS_HUP" = "yes" ]; then echo reload else echo restart fi fi ;; *) SCRIPT="${SCRIPT:-${0##*/} $DHCPv_OPT}" echo "Usage: $SCRIPT {start|stop|status|try-restart|restart|force-reload|reload|probe} [-v]" exit 1 ;; esac
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor