| Rev | Author | # | Line |
|---|---|---|---|
| 5 | AristotlePagaltzis | 1 | AlastairPorter is trying to write some RedHat init.d scripts for the MetaNet. |
| 7 | JohnMcPherson | 2 | |
| 1 | AlastairPorter | 3 | |
| 5 | AristotlePagaltzis | 4 | <verbatim> |
| 5 | #!/bin/sh | ||
| 6 | # | ||
| 7 | # Etud startup script for the Ethernet over UDP daemon | ||
| 8 | # | ||
| 9 | # Written by Daniel Lawson <daniel@meta.net.nz> | ||
| 10 | # Modified for Red Hat by Alastair Porter <alastair@wlug.org.nz> | ||
| 11 | # | ||
| 12 | # | ||
| 13 | # Source function library. | ||
| 14 | . /etc/rc.d/init.d/functions | ||
| 1 | AlastairPorter | 15 | |
| 5 | AristotlePagaltzis | 16 | ETUDCONF=/usr/local/etc/etud.conf |
| 17 | DAEMON=/usr/local/sbin/Etud | ||
| 18 | #ETUDCONF=/etc/wandclients/etud.conf | ||
| 19 | #DAEMON=/usr/sbin/Etud | ||
| 20 | PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin | ||
| 21 | NAME=Etud | ||
| 22 | DESC="EtherneT over Udp Daemon" | ||
| 23 | IP=/bin/ip | ||
| 1 | AlastairPorter | 24 | |
| 5 | AristotlePagaltzis | 25 | # Check for the Etud configuration file |
| 6 | AristotlePagaltzis | 26 | if [ ! -f ${ETUDCONF} ]; then |
| 5 | AristotlePagaltzis | 27 | echo Could not find etud configuration file |
| 28 | exit | ||
| 29 | fi | ||
| 1 | AlastairPorter | 30 | |
| 5 | AristotlePagaltzis | 31 | # Parameter defaults |
| 32 | IFNAME=wan0 | ||
| 33 | CTRLFILE=/var/run/Etud.ctrl | ||
| 34 | PIDFILE=/var/run/Etud.pid | ||
| 35 | # Retrieve the real values from the config file if they exist | ||
| 36 | while read parameter value | ||
| 37 | do | ||
| 6 | AristotlePagaltzis | 38 | if [ "$parameter" == "pidfile" ]; then |
| 39 | PIDFILE=`echo "$value" | tr -d '"'` | ||
| 40 | elif [ "$parameter" == "ctrlfile" ]; then | ||
| 5 | AristotlePagaltzis | 41 | CTRLFILE=`echo "$value" | tr -d '"'` |
| 6 | AristotlePagaltzis | 42 | elif [ "$parameter" == "ifname" ]; then |
| 5 | AristotlePagaltzis | 43 | IFNAME=`echo "$value" | tr -d '"'` |
| 44 | fi | ||
| 45 | done < $ETUDCONF | ||
| 1 | AlastairPorter | 46 | |
| 5 | AristotlePagaltzis | 47 | test -x $DAEMON || exit 0 |
| 48 | ARGS="-f $ETUDCONF -p $PIDFILE" | ||
| 1 | AlastairPorter | 49 | |
| 5 | AristotlePagaltzis | 50 | set -e |
| 1 | AlastairPorter | 51 | |
| 5 | AristotlePagaltzis | 52 | case "$1" in |
| 53 | start) | ||
| 54 | echo -n "Starting Etud" | ||
| 6 | AristotlePagaltzis | 55 | [ -e $CTRLFILE ] && { |
| 5 | AristotlePagaltzis | 56 | echo "" |
| 57 | echo -n "Control file exists, checking to see if Etud lives? " | ||
| 1 | AlastairPorter | 58 | |
| 6 | AristotlePagaltzis | 59 | [ -e ${PIDFILE} ] || { |
| 5 | AristotlePagaltzis | 60 | echo "" |
| 61 | echo "No pidfile present, exiting" | ||
| 62 | exit 1; | ||
| 63 | } | ||
| 64 | # check that the pid in the pid file | ||
| 6 | AristotlePagaltzis | 65 | [ x`cat ${PIDFILE}` == x`pidof ${NAME}` ] && { |
| 5 | AristotlePagaltzis | 66 | echo "... yes, aborting" |
| 67 | exit 1; | ||
| 68 | } || { | ||
| 69 | echo "... no, removing" | ||
| 70 | \rm ${CTRLFILE} | ||
| 71 | } | ||
| 1 | AlastairPorter | 72 | |
| 5 | AristotlePagaltzis | 73 | } |
| 1 | AlastairPorter | 74 | |
| 5 | AristotlePagaltzis | 75 | daemon $DAEMON $ARGS |
| 76 | ifdown ${IFNAME} | ||
| 77 | ifup ${IFNAME} | ||
| 78 | echo | ||
| 79 | ;; | ||
| 1 | AlastairPorter | 80 | |
| 5 | AristotlePagaltzis | 81 | stop) |
| 82 | echo -n "Stopping Etud " | ||
| 83 | ifdown ${IFNAME} | ||
| 84 | # killproc Etud | ||
| 85 | # that should work (I think), but it doesn't... so: | ||
| 86 | kill `cat /var/run/Etud.pid` | ||
| 87 | echo | ||
| 88 | ;; | ||
| 1 | AlastairPorter | 89 | |
| 5 | AristotlePagaltzis | 90 | restart|force-reload) |
| 91 | echo -n "Restarting $NAME" | ||
| 92 | ifdown ${IFNAME} | ||
| 93 | # killproc Etud | ||
| 94 | # again... | ||
| 95 | kill `cat /var/run/Etud.pid` | ||
| 96 | sleep 1 | ||
| 97 | daemon $DAEMON $ARGS | ||
| 98 | ifup ${IFNAME} | ||
| 99 | echo | ||
| 100 | ;; | ||
| 101 | *) | ||
| 102 | echo "Usage: $0 {start|stop|restart|force-reload}" >&2 | ||
| 103 | ;; | ||
| 1 | AlastairPorter | 104 | |
| 5 | AristotlePagaltzis | 105 | esac |
| 106 | </verbatim> | ||
| 4 | GerwinVanDeSteeg | 107 | |
| 108 | Or here's one by [GerwinVanDeSteeg] which seems to work for Fedora Core 3. | ||
| 109 | |||
| 5 | AristotlePagaltzis | 110 | <tt>/etc/sysconfig/wand</tt>: |
| 111 | <verbatim> | ||
| 112 | # Configuration for the wandd daemon for the MetaNet | ||
| 113 | # http://www.wlug.org.nz/MetaNet | ||
| 4 | GerwinVanDeSteeg | 114 | |
| 5 | AristotlePagaltzis | 115 | EPORT=22222 |
| 116 | WPORT=44444 | ||
| 117 | SERVER=<the name of the server specified in wand.conf goes here> | ||
| 118 | WANIF=wan0 | ||
| 119 | </verbatim> | ||
| 4 | GerwinVanDeSteeg | 120 | |
| 5 | AristotlePagaltzis | 121 | <tt>/etc/init.d/wand</tt>: |
| 122 | <verbatim> | ||
| 123 | #! /bin/sh | ||
| 124 | # | ||
| 125 | # wand | ||
| 126 | # | ||
| 127 | # chkconfig: - 21 79 | ||
| 128 | # description: wand provides access to the MetaNet | ||
| 129 | # | ||
| 4 | GerwinVanDeSteeg | 130 | |
| 5 | AristotlePagaltzis | 131 | # Source function library. |
| 132 | . /etc/init.d/functions | ||
| 4 | GerwinVanDeSteeg | 133 | |
| 6 | AristotlePagaltzis | 134 | if [ ! -f /etc/sysconfig/network ]; then |
| 5 | AristotlePagaltzis | 135 | exit 0 |
| 136 | fi | ||
| 4 | GerwinVanDeSteeg | 137 | |
| 6 | AristotlePagaltzis | 138 | if [ ! -f /etc/sysconfig/wand ]; then |
| 5 | AristotlePagaltzis | 139 | exit 0 |
| 140 | fi | ||
| 4 | GerwinVanDeSteeg | 141 | |
| 5 | AristotlePagaltzis | 142 | . /etc/sysconfig/network |
| 143 | . /etc/sysconfig/wand | ||
| 4 | GerwinVanDeSteeg | 144 | |
| 5 | AristotlePagaltzis | 145 | ETUD=/usr/local/sbin/Etud |
| 146 | ETUDCTL=/usr/local/sbin/Etudctl | ||
| 147 | WAND=/usr/local/sbin/wand | ||
| 4 | GerwinVanDeSteeg | 148 | |
| 5 | AristotlePagaltzis | 149 | start() |
| 150 | { | ||
| 151 | echo -n $"Starting Etud: " | ||
| 152 | daemon $ETUD -l $EPORT -p /var/run/Etud.pid | ||
| 6 | AristotlePagaltzis | 153 | [ "$?" -eq 0 ] && echo_success || echo_failure |
| 5 | AristotlePagaltzis | 154 | echo |
| 155 | echo -n $"Bringing up interface $WANIF: " | ||
| 156 | ifup $WANIF | ||
| 6 | AristotlePagaltzis | 157 | [ "$?" -eq 0 ] && echo_success || echo_failure |
| 5 | AristotlePagaltzis | 158 | echo |
| 159 | echo -n $"Starting wand: " | ||
| 160 | daemon $WAND -i $SERVER -l $WPORT | ||
| 6 | AristotlePagaltzis | 161 | [ "$?" -eq 0 ] && echo_success || echo_failure |
| 5 | AristotlePagaltzis | 162 | echo |
| 163 | service zebra start | ||
| 164 | service bgpd start | ||
| 165 | } | ||
| 4 | GerwinVanDeSteeg | 166 | |
| 5 | AristotlePagaltzis | 167 | stop() |
| 168 | { | ||
| 169 | service bgpd stop | ||
| 170 | service zebra stop | ||
| 171 | echo -n $"Shutting down wand: " | ||
| 172 | killall wand | ||
| 6 | AristotlePagaltzis | 173 | [ "$?" -eq 0 ] && echo_success || echo_failure |
| 5 | AristotlePagaltzis | 174 | echo |
| 175 | echo -n $"Shutting down Etud: " | ||
| 176 | killall Etud | ||
| 6 | AristotlePagaltzis | 177 | [ "$?" -eq 0 ] && echo_success || echo_failure |
| 5 | AristotlePagaltzis | 178 | echo |
| 179 | } | ||
| 180 | case $1 in | ||
| 181 | start) | ||
| 182 | start | ||
| 183 | ;; | ||
| 184 | stop) | ||
| 185 | stop | ||
| 186 | ;; | ||
| 187 | restart) | ||
| 188 | stop | ||
| 189 | start | ||
| 190 | ;; | ||
| 191 | status) | ||
| 192 | service bgpd status | ||
| 193 | service zebra status | ||
| 194 | status $ETUD | ||
| 195 | $ETUDCTL -l | ||
| 196 | status $WANDD | ||
| 197 | ip route | grep zebra | ||
| 198 | ;; | ||
| 199 | *) | ||
| 200 | echo $"Usage: $prog {start|stop|restart|status}" | ||
| 201 | exit 1 | ||
| 202 | esac | ||
| 203 | </verbatim> |