You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
1.9 KiB
Plaintext
97 lines
1.9 KiB
Plaintext
2 years ago
|
#!/bin/sh
|
||
|
#
|
||
|
### BEGIN INIT INFO
|
||
|
# Provides: dhcpcd
|
||
|
# Required-Start: $remote_fs $local_fs
|
||
|
# Required-Stop: $remote_fs $local_fs
|
||
|
# Should-Start:
|
||
|
# Should-Stop:
|
||
|
# Default-Start: 2 3 4 5
|
||
|
# Default-Stop: 0 1 6
|
||
|
# Short-Description: IPv4 DHCP client with IPv4LL support
|
||
|
# Description:
|
||
|
### END INIT INFO
|
||
|
|
||
|
PATH=/sbin:/bin:/usr/sbin:/usr/bin
|
||
|
DHCPCD=/usr/sbin/dhcpcd
|
||
|
NAME=dhcpcd
|
||
|
PIDFILE=/var/run/dhcpcd.pid
|
||
|
|
||
|
test -x $DHCPCD || exit 0
|
||
|
|
||
|
INTERFACES=/etc/network/interfaces
|
||
|
|
||
|
. /lib/lsb/init-functions
|
||
|
|
||
|
sanity()
|
||
|
{
|
||
|
local x=
|
||
|
|
||
|
case "$($DHCPCD --version)" in
|
||
|
[1234].*)
|
||
|
log_failure_msg "Not running $NAME because an older version" \
|
||
|
"is currently preferred"
|
||
|
exit 6
|
||
|
esac
|
||
|
|
||
|
for x in /var/run/dhcpcd-*.pid; do
|
||
|
[ -f "$x" ] || continue
|
||
|
log_failure_msg "Not running $NAME because there is aleady an" \
|
||
|
"interface specific instance"
|
||
|
log_failure_msg "$x"
|
||
|
exit 6
|
||
|
done
|
||
|
|
||
|
if grep -q "^[[:space:]]*iface[[:space:]]*.*[[:space:]]*inet[[:space:]]*dhcp" \
|
||
|
$INTERFACES; then
|
||
|
log_failure_msg "Not running $NAME because $INTERFACES"
|
||
|
log_failure_msg "defines some interfaces that will use a" \
|
||
|
"DHCP client"
|
||
|
exit 6
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
case "$1" in
|
||
|
start)
|
||
|
sanity
|
||
|
if pidofproc -p $PIDFILE $DHCPCD >/dev/null; then
|
||
|
log_warning_msg "$NAME is already running"
|
||
|
exit 0
|
||
|
fi
|
||
|
$DHCPCD
|
||
|
;;
|
||
|
stop)
|
||
|
sanity
|
||
|
$DHCPCD -x
|
||
|
;;
|
||
|
restart|force-reload)
|
||
|
sanity
|
||
|
$DHCPCD -x
|
||
|
$DHCPCD
|
||
|
;;
|
||
|
try-restart)
|
||
|
if ! pidofproc -p $PIDFILE $DHCPCD >/dev/null; then
|
||
|
log_warning_msg "$NAME is not running"
|
||
|
else
|
||
|
sanity
|
||
|
$DHCPCD -x
|
||
|
$DHCPCD
|
||
|
fi
|
||
|
;;
|
||
|
reload)
|
||
|
if ! pidofproc -p $PIDFILE $DHCPCD >/dev/null; then
|
||
|
log_failure_msg "$NAME is not running"
|
||
|
exit 7
|
||
|
fi
|
||
|
sanity
|
||
|
$DHCPCD -n
|
||
|
;;
|
||
|
status)
|
||
|
status_of_proc -p $PIDFILE $DHCPCD "$NAME" || exit $?
|
||
|
;;
|
||
|
*)
|
||
|
log_failure_msg "Usage: /etc/init.d/dhcpcd {start|stop|restart|try-restart|force-reload|status}"
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|