diff options
Diffstat (limited to 'bootstrap/make-dhcp6-init.sh')
-rwxr-xr-x | bootstrap/make-dhcp6-init.sh | 378 |
1 files changed, 0 insertions, 378 deletions
diff --git a/bootstrap/make-dhcp6-init.sh b/bootstrap/make-dhcp6-init.sh deleted file mode 100755 index 65f18a3..0000000 --- a/bootstrap/make-dhcp6-init.sh +++ /dev/null @@ -1,378 +0,0 @@ -#!/bin/bash - -DHCP4_DEFAULT="/etc/default/isc-dhcp-server" -DHCP4_INIT="/etc/init.d/isc-dhcp-server" -DHCP6_DEFAULT="/etc/default/isc-dhcp6-server" -DHCP6_INIT="/etc/init.d/isc-dhcp6-server" - -if [ -e "${DHCP4_DEFAULT}" ]; -then - echo "${DHCP4_DEFAULT} exists! Overwriting." -fi -if [ -e "${DHCP6_DEFAULT}" ]; -then - echo "${DHCP6_DEFAULT} exists! Overwriting." -fi - -set -e - -cat > ${DHCP4_DEFAULT}<<'_EOF' -# Defaults for isc-dhcp-server initscript -# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf). -DHCPD_CONF=/etc/dhcp/dhcpd.conf - -# Path to dhcpd's PID file (default: /var/run/dhcpd.pid). -DHCPD_PID=/var/run/dhcpd.pid - -# Additional options to start dhcpd with. -# Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead -OPTIONS="-4" - -# On what interfaces should the DHCP server (dhcpd) serve DHCP requests? -# Separate multiple interfaces with spaces, e.g. "eth0 eth1". -# If no interface names are specified, dhcpd will identify all network interfaces -# which are up, eliminating non-broadcast interfaces if possible, and listen -# for DHCP broadcasts on each interface. -INTERFACES="" -_EOF - -cat > ${DHCP6_DEFAULT}<<'_EOF' -# Defaults for isc-dhcp-server initscript -# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf). -DHCPD_CONF=/etc/dhcp/dhcpd6.conf - -# Path to dhcpd's PID file (default: /var/run/dhcpd.pid). -DHCPD_PID=/var/run/dhcpd6.pid - -# Additional options to start dhcpd with. -# Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead -OPTIONS="-6" - -# On what interfaces should the DHCP server (dhcpd) serve DHCP requests? -# Separate multiple interfaces with spaces, e.g. "eth0 eth1". -# If no interface names are specified, dhcpd will identify all network interfaces -# which are up, eliminating non-broadcast interfaces if possible, and listen -# for DHCP broadcasts on each interface. -INTERFACES="" -_EOF - -set +e - -if [ -e "${DHCP4_INIT}" ]; -then - echo "${DHCP4_INIT} exists! Overwriting." -fi -if [ -e "${DHCP6_INIT}" ]; -then - echo "${DHCP6_INIT} exists! Overwriting." -fi - -set -e - -cat > ${DHCP4_INIT}<<'_EOF' -#!/bin/sh -# -# - -### BEGIN INIT INFO -# Provides: isc-dhcp-server -# Required-Start: $remote_fs $network $syslog -# Required-Stop: $remote_fs $network $syslog -# Should-Start: $local_fs slapd $named -# Should-Stop: $local_fs slapd -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: DHCP server -# Description: Dynamic Host Configuration Protocol Server -### END INIT INFO - -PATH=/sbin:/bin:/usr/sbin:/usr/bin - -test -f /usr/sbin/dhcpd || exit 0 - -DHCPD_DEFAULT="${DHCPD_DEFAULT:-/etc/default/isc-dhcp-server}" - -# It is not safe to start if we don't have a default configuration... -if [ ! -f "$DHCPD_DEFAULT" ]; then - echo "$DHCPD_DEFAULT does not exist! - Aborting..." - if [ "$DHCPD_DEFAULT" = "/etc/default/isc-dhcp-server" ]; then - echo "Run 'dpkg-reconfigure isc-dhcp-server' to fix the problem." - fi - exit 0 -fi - -. /lib/lsb/init-functions - -# Read init script configuration -[ -f "$DHCPD_DEFAULT" ] && . "$DHCPD_DEFAULT" - -NAME=dhcpd -DESC="ISC DHCP server" -# fallback to default config file -DHCPD_CONF=${DHCPD_CONF:-/etc/dhcp/dhcpd.conf} -# try to read pid file name from config file, with fallback to /var/run/dhcpd.pid -if [ -z "$DHCPD_PID" ]; then - DHCPD_PID=$(sed -n -e 's/^[ \t]*pid-file-name[ \t]*"(.*)"[ \t]*;.*$/\1/p' < "$DHCPD_CONF" 2>/dev/null | head -n 1) -fi -DHCPD_PID="${DHCPD_PID:-/var/run/dhcpd.pid}" - -test_config() -{ - if ! /usr/sbin/dhcpd -t $OPTIONS -q -cf "$DHCPD_CONF" > /dev/null 2>&1; then - echo "dhcpd self-test failed. Please fix $DHCPD_CONF." - echo "The error was: " - /usr/sbin/dhcpd -t $OPTIONS -cf "$DHCPD_CONF" - exit 1 - fi - touch /var/lib/dhcp/dhcpd.leases -} - -# single arg is -v for messages, -q for none -check_status() -{ - if [ ! -r "$DHCPD_PID" ]; then - test "$1" != -v || echo "$NAME is not running." - return 3 - fi - if read pid < "$DHCPD_PID" && ps -p "$pid" > /dev/null 2>&1; then - test "$1" != -v || echo "$NAME is running." - return 0 - else - test "$1" != -v || echo "$NAME is not running but $DHCPD_PID exists." - return 1 - fi -} - -case "$1" in - start) - test_config - log_daemon_msg "Starting $DESC" "$NAME" - start-stop-daemon --start --quiet --pidfile "$DHCPD_PID" \ - --exec /usr/sbin/dhcpd -- \ - -q $OPTIONS -cf "$DHCPD_CONF" -pf "$DHCPD_PID" $INTERFACES - sleep 2 - - if check_status -q; then - log_end_msg 0 - else - log_failure_msg "check syslog for diagnostics." - log_end_msg 1 - exit 1 - fi - ;; - stop) - log_daemon_msg "Stopping $DESC" "$NAME" - start-stop-daemon --stop --quiet --pidfile "$DHCPD_PID" - log_end_msg $? - rm -f "$DHCPD_PID" - ;; - restart | force-reload) - test_config - $0 stop - sleep 2 - $0 start - if [ "$?" != "0" ]; then - exit 1 - fi - ;; - status) - echo -n "Status of $DESC: " - check_status -v - exit "$?" - ;; - *) - echo "Usage: $0 {start|stop|restart|force-reload|status}" - exit 1 -esac - -exit 0 - -_EOF - -cat > ${DHCP6_INIT}<<'_EOF' -#!/bin/sh -# -# - -### BEGIN INIT INFO -# Provides: isc-dhcp6-server -# Required-Start: $remote_fs $network $syslog -# Required-Stop: $remote_fs $network $syslog -# Should-Start: $local_fs slapd $named -# Should-Stop: $local_fs slapd -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: DHCP server v6 -# Description: Dynamic Host Configuration Protocol Server v6 -### END INIT INFO - -PATH=/sbin:/bin:/usr/sbin:/usr/bin - -test -f /usr/sbin/dhcpd || exit 0 - -DHCPD_DEFAULT="${DHCPD_DEFAULT:-/etc/default/isc-dhcp6-server}" - -# It is not safe to start if we don't have a default configuration... -if [ ! -f "$DHCPD_DEFAULT" ]; then - echo "$DHCPD_DEFAULT does not exist! - Aborting..." - if [ "$DHCPD_DEFAULT" = "/etc/default/isc-dhcp6-server" ]; then - echo "Run 'dpkg-reconfigure isc-dhcp6-server' to fix the problem." - fi - exit 0 -fi - -. /lib/lsb/init-functions - -# Read init script configuration -[ -f "$DHCPD_DEFAULT" ] && . "$DHCPD_DEFAULT" - -NAME=dhcpd -DESC="ISC DHCP server" -# fallback to default config file -DHCPD_CONF=${DHCPD_CONF:-/etc/dhcp/dhcpd6.conf} -# try to read pid file name from config file, with fallback to /var/run/dhcpd.pid -if [ -z "$DHCPD_PID" ]; then - DHCPD_PID=$(sed -n -e 's/^[ \t]*pid-file-name[ \t]*"(.*)"[ \t]*;.*$/\1/p' < "$DHCPD_CONF" 2>/dev/null | head -n 1) -fi -DHCPD_PID="${DHCPD_PID:-/var/run/dhcpd6.pid}" - -test_config() -{ - if ! /usr/sbin/dhcpd -t $OPTIONS -q -cf "$DHCPD_CONF" > /dev/null 2>&1; then - echo "dhcpd self-test failed. Please fix $DHCPD_CONF." - echo "The error was: " - /usr/sbin/dhcpd -t $OPTIONS -cf "$DHCPD_CONF" - exit 1 - fi - touch /var/lib/dhcp/dhcpd.leases -} - -# single arg is -v for messages, -q for none -check_status() -{ - if [ ! -r "$DHCPD_PID" ]; then - test "$1" != -v || echo "$NAME is not running." - return 3 - fi - if read pid < "$DHCPD_PID" && ps -p "$pid" > /dev/null 2>&1; then - test "$1" != -v || echo "$NAME is running." - return 0 - else - test "$1" != -v || echo "$NAME is not running but $DHCPD_PID exists." - return 1 - fi -} - -case "$1" in - start) - test_config - log_daemon_msg "Starting $DESC" "$NAME" - start-stop-daemon --start --quiet --pidfile "$DHCPD_PID" \ - --exec /usr/sbin/dhcpd -- \ - -q $OPTIONS -cf "$DHCPD_CONF" -pf "$DHCPD_PID" $INTERFACES - sleep 2 - - if check_status -q; then - log_end_msg 0 - else - log_failure_msg "check syslog for diagnostics." - log_end_msg 1 - exit 1 - fi - ;; - stop) - log_daemon_msg "Stopping $DESC" "$NAME" - start-stop-daemon --stop --quiet --pidfile "$DHCPD_PID" - log_end_msg $? - rm -f "$DHCPD_PID" - ;; - restart | force-reload) - test_config - $0 stop - sleep 2 - $0 start - if [ "$?" != "0" ]; then - exit 1 - fi - ;; - status) - echo -n "Status of $DESC: " - check_status -v - exit "$?" - ;; - *) - echo "Usage: $0 {start|stop|restart|force-reload|status}" - exit 1 -esac - -exit 0 - -_EOF - - -# Very Debian specific -# Hacked together at TG15 -# FIXME :-D - -DHCP4_SYSTEMD="/run/systemd/generator.late/isc-dhcp-server.service" -DHCP6_SYSTEMD="/run/systemd/generator.late/isc-dhcp6-server.service" - -cat > ${DHCP4_SYSTEMD}<<'_EOF' -# Automatically generated by bootstrap - -[Unit] -SourcePath=/etc/init.d/isc-dhcp-server -Description=LSB: DHCP server -Before=runlevel2.target runlevel3.target runlevel4.target runlevel5.target shutdown.target -After=remote-fs.target network-online.target systemd-journald-dev-log.socket local-fs.target slapd.service nss-lookup.target -Wants=network-online.target -Conflicts=shutdown.target - -[Service] -Type=forking -Restart=no -TimeoutSec=5min -IgnoreSIGPIPE=no -KillMode=process -GuessMainPID=no -RemainAfterExit=yes -SysVStartPriority=3 -ExecStart=/etc/init.d/isc-dhcp-server start -ExecStop=/etc/init.d/isc-dhcp-server stop - -_EOF - -cat > ${DHCP6_SYSTEMD}<<'_EOF' -# Automatically generated by bootstrap - -[Unit] -SourcePath=/etc/init.d/isc-dhcp6-server -Description=LSB: DHCP server v6 -Before=runlevel2.target runlevel3.target runlevel4.target runlevel5.target shutdown.target -After=remote-fs.target network-online.target systemd-journald-dev-log.socket local-fs.target slapd.service nss-lookup.target -Wants=network-online.target -Conflicts=shutdown.target - -[Service] -Type=forking -Restart=no -TimeoutSec=5min -IgnoreSIGPIPE=no -KillMode=process -GuessMainPID=no -RemainAfterExit=yes -SysVStartPriority=3 -ExecStart=/etc/init.d/isc-dhcp6-server start -ExecStop=/etc/init.d/isc-dhcp6-server stop - -_EOF - - -set +e - -chmod 755 ${DHCP4_INIT} -chmod 755 ${DHCP6_INIT} -touch /var/lib/dhcp/dhcpd.leases -touch /var/lib/dhcp/dhcpd6.leases - - |