aboutsummaryrefslogtreecommitdiffstats
path: root/clfs/services/dhcpcd
blob: 0408df132b596598e26bda26a2a9af88b6004a57 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/bash
# Begin services/dhcpcd

# Origianlly dased upon lfs-bootscripts-1.12 $NETWORK_DEVICES/if{down,up}
# Rewritten by Nathan Coulson <nathan@linuxfromscratch.org>
# Adapted for dhcpcd by DJ Lucas <dj@linuxfromscratch.org>
# Update for LFS 7.0 by Bruce Dubbs <bdubbs@linuxfromscratch,org>

# Call with: IFCONFIG=<filename> /lib/services/dhcpcd <IFACE> <up | down>

#$LastChangedBy: bdubbs $
#$Date: 2012-04-09 21:48:51 +0200 (Mon, 09 Apr 2012) $

. /lib/lsb/init-functions
. $IFCONFIG

pidfile="/var/run/dhcpcd-$1.pid"

case "$2" in
    up)
       # Cosmetic output not needed for multiple services
       if ! $(echo ${SERVICE} | grep -q " "); then
         log_info_msg2 "\n" # Terminate the previous message
       fi
    
       log_info_msg "Starting dhcpcd on the $1 interface..."

       # Test to see if there is a stale pid file
       if [ -f "$pidfile" ]; then
          ps `cat "$pidfile"` | grep dhcpcd > /dev/null

          if [ $? != 0 ]; then
             rm -f /var/run/dhcpcd-$1.pid > /dev/null
          
          else
             log_warning_msg "dhcpcd is already running!"
             exit 2
          fi
       fi

       /sbin/dhcpcd $1 $DHCP_START
       evaluate_retval
       ;;

     down)
       log_info_msg "Stopping dhcpcd on the $1 interface..."

       if [ -z "$DHCP_STOP" ]; then
          killproc -p "${pidfile}" /sbin/dhcpcd

       else
          /sbin/dhcpcd $1 $DHCP_STOP &> /dev/null

          if [ "$?" -eq 1 ]; then
             log_warning_msg "dhcpcd not running!"
             exit 2
          fi
       fi

       evaluate_retval
       ;;

     *)
       echo "Usage: $0 [interface] {up|down}"
       exit 1
       ;;
esac

# End services/dhcpcd