(List (= scope= flags=0 words=[] bindings=[('PATH', {[LIT_CHARS /sbin] [LIT_OTHER ":"] [LIT_CHARS /bin]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS /lib/init/vars.sh]}) (Com {[LIT_CHARS .]} {[LIT_CHARS /lib/lsb/init-functions]}) (FunctionDef do_stop [] (List (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[DQ [VarSub VERBOSE]]} {[LIT_OTHER "="]} {[LIT_CHARS no]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS log_action_begin_msg]} {[DQ [LIT_CHARS "Mounting root filesystem read-only"]]}) ) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -f]} {[LIT_CHARS /var/run/init.upgraded]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('old_map', {[ComSub (Com {[LIT_CHARS cat]} {[LIT_CHARS /proc/1/maps]})]})]) (= scope= flags=0 words=[] bindings=[('map', {[VarSub old_map]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS telinit]} {[LIT_CHARS u]}) (Com {[LIT_OTHER ":"]}) ) (= scope= flags=0 words=[] bindings=[('i', {[LIT_CHARS 0]})]) (= scope= flags=0 words=[] bindings=[('timeout', {[LIT_CHARS 5]})]) (While (Com {[LIT_OTHER "["]} {[DQ [VarSub map]]} {[LIT_OTHER "="]} {[DQ [VarSub old_map]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS sleep]} {[LIT_CHARS 1]}) (= scope= flags=0 words=[] bindings=[('map', {[ComSub (Com {[LIT_CHARS cat]} {[LIT_CHARS /proc/1/maps]})]})]) (Com {[LIT_CHARS /usr/bin/logger]} {[DQ [LIT_CHARS "waiting for init to respawn"]]}) (= scope= flags=0 words=[] bindings=[('i', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) (If (Com {[LIT_OTHER "["]} {[VarSub i]} {[LIT_CHARS -eq]} {[VarSub timeout]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS break]}) ) ) ) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub map]]} {[LIT_OTHER "="]} {[DQ [VarSub old_map]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS /usr/bin/logger]} {[DQ [LIT_CHARS "FAIL: init failed to respawn in "][VarSub timeout][LIT_CHARS " seconds - unmounting anyway"]]}) (ElseTrue) (Com {[LIT_CHARS /usr/bin/logger]} {[DQ [LIT_CHARS "SUCCESS: init respawned after "][VarSub i][LIT_CHARS " seconds (within "][VarSub timeout][LIT_CHARS " seconds timeout)"]]}) ) ) ) (= scope= flags=0 words=[] bindings=[('MOUNT_FORCE_OPT', {[SQ ]})]) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[DQ [ComSub (Com {[LIT_CHARS uname]} {[LIT_CHARS -s]})]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS GNU/kFreeBSD]]} {[LIT_OTHER "]"]}) (= scope= flags=0 words=[] bindings=[('MOUNT_FORCE_OPT', {[LIT_CHARS -f]})]) ) (AndOr OP_OR_IF (Com {[LIT_CHARS mount]} {[VarSub MOUNT_FORCE_OPT]} {[LIT_CHARS -n]} {[LIT_CHARS -o]} {[LIT_CHARS remount] [LIT_COMMA ","] [LIT_CHARS ro]} {[LIT_CHARS -t]} {[LIT_CHARS dummytype]} {[LIT_CHARS dummydev]} {[LIT_CHARS /]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS mount]} {[VarSub MOUNT_FORCE_OPT]} {[LIT_CHARS -n]} {[LIT_CHARS -o]} {[LIT_CHARS remount] [LIT_COMMA ","] [LIT_CHARS ro]} {[LIT_CHARS dummydev]} {[LIT_CHARS /]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2), > ) (Com {[LIT_CHARS mount]} {[VarSub MOUNT_FORCE_OPT]} {[LIT_CHARS -n]} {[LIT_CHARS -o]} {[LIT_CHARS remount] [LIT_COMMA ","] [LIT_CHARS ro]} {[LIT_CHARS /]}) ) ) (= scope= flags=0 words=[] bindings=[('ES', {[VarSub ?]})]) (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[DQ [VarSub VERBOSE]]} {[LIT_OTHER "="]} {[LIT_CHARS no]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS log_action_end_msg]} {[VarSub ES]}) ) ) ) (Case to_match={[DQ [VarSub 1]]}, pat_word_list=[[{[LIT_CHARS start]}], [{[LIT_CHARS restart]}, {[LIT_CHARS reload]}, {[LIT_CHARS force-reload]}], [{[LIT_CHARS stop]}], [{[LIT_OTHER "*"]}]] (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Error: argument '"][VarSub 1][LIT_CHARS "' not supported"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 3]}) ) (Com {[LIT_CHARS do_stop]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Usage: "][VarSub 0][LIT_CHARS " start|stop"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 3]}) ) ) (Com {[LIT_OTHER ":"]}) )