#!/bin/sh ### BEGIN INIT INFO # Provides: irqbalance # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: daemon to balance interrupts for SMP systems ### END INIT INFO # irqbalance init script # August 2003 # Eric Dorland # Based on spamassassin init script global PATH := '/sbin:/bin:/usr/sbin:/usr/bin' global DAEMON := '/usr/sbin/irqbalance' global NAME := 'irqbalance' global SNAME := 'irqbalance' global DESC := '"SMP IRQ Balancer'" global PIDFILE := ""/var/run/$NAME.pid"" global PNAME := '"irqbalance'" global DOPTIONS := ''"" # Defaults - don't touch, edit /etc/default/ global ENABLED := '0' global OPTIONS := ''"" global ONESHOT := '0' test -x $DAEMON || exit 0 source /lib/lsb/init-functions test -f /etc/default/irqbalance && source /etc/default/irqbalance test $ENABLED != "0" || exit 0 if test $ONESHOT != "0" { global DOPTIONS := '"--oneshot'" } matchstr $1 { start { if test -x /usr/bin/systemd-detect-virt && /usr/bin/systemd-detect-virt --quiet --container { log_daemon_msg "Not starting $NAME in container" log_end_msg 0 exit 0 } log_begin_msg "Starting $DESC: $NAME" global pid := $[ pidofproc -p $PIDFILE $DAEMON] if test -n $pid { log_begin_msg ". Already running" log_end_msg 0 exit 0 } start-stop-daemon --start --quiet --oknodo --exec $DAEMON -- --pid=$PIDFILE $OPTIONS $DOPTIONS log_end_msg $Status } stop { log_begin_msg "Stopping $DESC: $NAME" start-stop-daemon --stop --quiet --oknodo --exec $DAEMON rm -f $PIDFILE log_end_msg $Status } restart|force-reload { if test -x /usr/bin/systemd-detect-virt && /usr/bin/systemd-detect-virt --quiet --container { log_daemon_msg "Not restarting $NAME in container" log_end_msg 0 exit 0 } log_begin_msg "Restarting $DESC: $NAME" start-stop-daemon --stop --retry 5 --quiet --oknodo --exec $DAEMON rm -f $PIDFILE start-stop-daemon --start --quiet --oknodo --exec $DAEMON -- --pid=$PIDFILE $OPTIONS $DOPTIONS log_end_msg $Status } status { status_of_proc $DAEMON $NAME } * { global N := "/etc/init.d/$SNAME" echo "Usage: $N {start|stop|restart|force-reload}" > !2 exit 1 } } exit 0 (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PATH) op: Equal rhs: {(/sbin) (Lit_Other ":") (/bin) (Lit_Other ":") (/usr/sbin) (Lit_Other ":") (/usr/bin)} spids: [41] ) ] spids: [41] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DAEMON) op: Equal rhs: {(/usr/sbin/irqbalance)} spids: [50] ) ] spids: [50] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:NAME) op:Equal rhs:{(irqbalance)} spids:[53])] spids: [53] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:SNAME) op:Equal rhs:{(irqbalance)} spids:[56])] spids: [56] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DESC) op: Equal rhs: {(DQ ("SMP IRQ Balancer"))} spids: [59] ) ] spids: [59] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PIDFILE) op: Equal rhs: {(DQ (/var/run/) ($ VSub_Name "$NAME") (.pid))} spids: [64] ) ] spids: [64] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:PNAME) op:Equal rhs:{(DQ (irqbalance))} spids:[71])] spids: [71] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:DOPTIONS) op:Equal rhs:{(DQ )} spids:[76])] spids: [76] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:ENABLED) op:Equal rhs:{(0)} spids:[84])] spids: [84] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:OPTIONS) op:Equal rhs:{(DQ )} spids:[87])] spids: [87] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:ONESHOT) op:Equal rhs:{(0)} spids:[91])] spids: [91] ) (AndOr children: [(C {(test)} {(-x)} {($ VSub_Name "$DAEMON")}) (C {(exit)} {(0)})] op_id: Op_DPipe ) (C {(.)} {(/lib/lsb/init-functions)}) (AndOr children: [(C {(test)} {(-f)} {(/etc/default/irqbalance)}) (C {(.)} {(/etc/default/irqbalance)})] op_id: Op_DAmp ) (AndOr children: [ (C {(test)} {(DQ ($ VSub_Name "$ENABLED"))} {(KW_Bang "!") (Lit_Other "=")} {(DQ (0))}) (C {(exit)} {(0)}) ] op_id: Op_DPipe ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(DQ ($ VSub_Name "$ONESHOT"))} {(KW_Bang "!") (Lit_Other "=")} {(DQ (0))}) terminator: ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DOPTIONS) op: Equal rhs: {(DQ (--oneshot))} spids: [165] ) ] spids: [165] ) ] spids: [-1 162] ) ] spids: [-1 170] ) (Case to_match: {(DQ ($ VSub_Number "$1"))} arms: [ (case_arm pat_list: [{(start)}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (C {(Lit_Other "[")} {(-x)} {(/usr/bin/systemd-detect-virt)} {(Lit_Other "]")} ) (C {(/usr/bin/systemd-detect-virt)} {(--quiet)} {(--container)}) ] op_id: Op_DAmp ) terminator: ) ] action: [ (C {(log_daemon_msg)} {(DQ ("Not starting ") ($ VSub_Name "$NAME") (" in container"))} ) (C {(log_end_msg)} {(0)}) (C {(exit)} {(0)}) ] spids: [-1 205] ) ] spids: [-1 227] ) (C {(log_begin_msg)} {(DQ ("Starting ") ($ VSub_Name "$DESC") (": ") ($ VSub_Name "$NAME"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pid) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(pidofproc)} {(-p)} {($ VSub_Name "$PIDFILE")} {($ VSub_Name "$DAEMON")} ) ] ) left_token: spids: [243 253] ) } spids: [242] ) ] spids: [242] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-n)} {(DQ ($ VSub_Name "$pid"))} {(Lit_Other "]")}) terminator: ) ] action: [ (C {(log_begin_msg)} {(DQ (". Already running"))}) (C {(log_end_msg)} {(0)}) (C {(exit)} {(0)}) ] spids: [-1 270] ) ] spids: [-1 290] ) (C {(start-stop-daemon)} {(--start)} {(--quiet)} {(--oknodo)} {(--exec)} {($ VSub_Name "$DAEMON")} {(--)} {(--pid) (Lit_Other "=") ($ VSub_Name "$PIDFILE")} {($ VSub_Name "$OPTIONS")} {($ VSub_Name "$DOPTIONS")} ) (C {(log_end_msg)} {($ VSub_QMark "$?")}) ] spids: [182 183 323 -1] ) (case_arm pat_list: [{(stop)}] action: [ (C {(log_begin_msg)} {(DQ ("Stopping ") ($ VSub_Name "$DESC") (": ") ($ VSub_Name "$NAME"))}) (C {(start-stop-daemon)} {(--stop)} {(--quiet)} {(--oknodo)} {(--exec)} {($ VSub_Name "$DAEMON")} ) (C {(rm)} {(-f)} {($ VSub_Name "$PIDFILE")}) (C {(log_end_msg)} {($ VSub_QMark "$?")}) ] spids: [326 327 367 -1] ) (case_arm pat_list: [{(restart)} {(force-reload)}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (C {(Lit_Other "[")} {(-x)} {(/usr/bin/systemd-detect-virt)} {(Lit_Other "]")} ) (C {(/usr/bin/systemd-detect-virt)} {(--quiet)} {(--container)}) ] op_id: Op_DAmp ) terminator: ) ] action: [ (C {(log_daemon_msg)} {(DQ ("Not restarting ") ($ VSub_Name "$NAME") (" in container"))} ) (C {(log_end_msg)} {(0)}) (C {(exit)} {(0)}) ] spids: [-1 395] ) ] spids: [-1 417] ) (C {(log_begin_msg)} {(DQ ("Restarting ") ($ VSub_Name "$DESC") (": ") ($ VSub_Name "$NAME"))} ) (C {(start-stop-daemon)} {(--stop)} {(--retry)} {(5)} {(--quiet)} {(--oknodo)} {(--exec)} {($ VSub_Name "$DAEMON")} ) (C {(rm)} {(-f)} {($ VSub_Name "$PIDFILE")}) (C {(start-stop-daemon)} {(--start)} {(--quiet)} {(--oknodo)} {(--exec)} {($ VSub_Name "$DAEMON")} {(--)} {(--pid) (Lit_Other "=") ($ VSub_Name "$PIDFILE")} {($ VSub_Name "$OPTIONS")} {($ VSub_Name "$DOPTIONS")} ) (C {(log_end_msg)} {($ VSub_QMark "$?")}) ] spids: [370 373 486 -1] ) (case_arm pat_list: [{(status)}] action: [(C {(status_of_proc)} {($ VSub_Name "$DAEMON")} {($ VSub_Name "$NAME")})] spids: [489 490 500 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:N) op: Equal rhs: {(/etc/init.d/) ($ VSub_Name "$SNAME")} spids: [507] ) ] spids: [507] ) (SimpleCommand words: [ {(echo)} {(DQ ("Usage: ") ($ VSub_Name "$N") (" {start|stop|restart|force-reload}"))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[520])] ) (C {(exit)} {(1)}) ] spids: [503 504 529 -1] ) ] spids: [173 179 531] ) (C {(exit)} {(0)}) ] )