(List (= scope= flags=0 words=[] bindings=[('PATH', {[LIT_CHARS /sbin] [LIT_OTHER ":"] [LIT_CHARS /usr/sbin] [LIT_OTHER ":"] [LIT_CHARS /bin] [LIT_OTHER ":"] [LIT_CHARS /usr/bin]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS /lib/lsb/init-functions]}) (FunctionDef report_unkillable [] (List (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -x]} {[LIT_CHARS /usr/share/apport/unkillable_shutdown]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]}) ) (If (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[LIT_CHARS /etc/default/apport]} {[LIT_OTHER "]"]}) (Pipeline! (Com {[LIT_CHARS grep]} {[LIT_CHARS -q]} {[SQ ]} {[LIT_CHARS /etc/default/apport]}) ) ) (Com {[LIT_CHARS return]}) ) (Com {[LIT_CHARS /usr/share/apport/unkillable_shutdown]} {[VarSub OMITPIDS]}) ) ) (FunctionDef upstart_killed_jobs [] (Pipeline (Com {[LIT_CHARS initctl]} {[LIT_CHARS list]}) (Com {[LIT_CHARS grep]} {[SQ ]}) ) ) (FunctionDef upstart_jobs [] (Pipeline (Com {[LIT_CHARS initctl]} {[LIT_CHARS list]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -E]} {[SQ ]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -n]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "/process [0-9]/s/.*process //p"]]}) ) ) (FunctionDef do_stop [] (List (= scope= flags=0 words=[] bindings=[('OMITPIDS', {[SQ ]})]) (For omitfile [{[LIT_CHARS /run/sendsigs.omit]}]) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -e]} {[VarSub omitfile]} {[LIT_OTHER "]"]}) (For pid [{[ComSub (Com {[LIT_CHARS cat]} {[VarSub omitfile]})]}]) (= scope= flags=0 words=[] bindings=[('OMITPIDS', {[DQ [VarSub OMITPIDS test_op=VS_TEST_COLON_PLUS {[VarSub OMITPIDS] [LIT_CHARS " "]}][LIT_CHARS "-o "][VarSub pid]]})]) ) ) ) (For omitdir [{[LIT_CHARS /run/sendsigs.omit.d]}]) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -d]} {[DQ [VarSub omitdir]]} {[LIT_OTHER "]"]}) (For pidfile [{[DQ [VarSub omitdir][LIT_CHARS /]] [LIT_OTHER "*"]}]) (List (AndOr OP_OR_IF (Com {[LIT_OTHER "["]} {[LIT_CHARS -f]} {[DQ [VarSub pidfile]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS continue]}) ) (For pid [{[ComSub (Com {[LIT_CHARS cat]} {[VarSub pidfile]})]}]) (= scope= flags=0 words=[] bindings=[('OMITPIDS', {[DQ [VarSub OMITPIDS test_op=VS_TEST_COLON_PLUS {[VarSub OMITPIDS] [LIT_CHARS " "]}][LIT_CHARS "-o "][VarSub pid]]})]) ) ) ) ) ) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -x]} {[LIT_CHARS /sbin/initctl]} {[LIT_OTHER "]"]}) (For pid [{[ComSub (Com {[LIT_CHARS upstart_jobs]})]}]) (= scope= flags=0 words=[] bindings=[('OMITPIDS', {[DQ [VarSub OMITPIDS test_op=VS_TEST_COLON_PLUS {[VarSub OMITPIDS] [LIT_CHARS " "]}][LIT_CHARS "-o "][VarSub pid]]})]) ) ) (Com {[LIT_CHARS sync]}) (Com {[LIT_CHARS log_action_begin_msg]} {[DQ [LIT_CHARS "Asking all remaining processes to terminate"]]}) (Com {[LIT_CHARS killall5]} {[LIT_CHARS -15]} {[VarSub OMITPIDS]}) (Com {[LIT_CHARS log_action_end_msg]} {[LIT_CHARS 0]}) (= scope= flags=0 words=[] bindings=[('alldead', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('OMITPIDS0', {[DQ [VarSub OMITPIDS]]})]) (For seq [{[LIT_CHARS 1]}, {[LIT_CHARS 2]}, {[LIT_CHARS 3]}, {[LIT_CHARS 4]}, {[LIT_CHARS 5]}, {[LIT_CHARS 6]}, {[LIT_CHARS 7]}, {[LIT_CHARS 8]}, {[LIT_CHARS 9]}, {[LIT_CHARS 10]}]) (List (= scope= flags=0 words=[] bindings=[('OMITPIDS', {[DQ [VarSub OMITPIDS0]]})]) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -x]} {[LIT_CHARS /sbin/initctl]} {[LIT_OTHER "]"]}) (For pid [{[ComSub (Com {[LIT_CHARS upstart_jobs]})]}]) (= scope= flags=0 words=[] bindings=[('OMITPIDS', {[DQ [VarSub OMITPIDS test_op=VS_TEST_COLON_PLUS {[VarSub OMITPIDS] [LIT_CHARS " "]}][LIT_CHARS "-o "][VarSub pid]]})]) ) ) (If (Com {[LIT_CHARS killall5]} {[LIT_CHARS -18]} {[VarSub OMITPIDS]}) (Com {[LIT_OTHER ":"]}) (ElseTrue) (List (= scope= flags=0 words=[] bindings=[('alldead', {[LIT_CHARS 1]})]) (Com {[LIT_CHARS break]}) ) ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 1]}) ) ) (While (Com {[LIT_OTHER "["]} {[LIT_CHARS -n]} {[DQ [ComSub (Com {[LIT_CHARS upstart_killed_jobs]})]]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('seq', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub seq]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) (If (Com {[LIT_OTHER "["]} {[VarSub seq]} {[LIT_CHARS -ge]} {[LIT_CHARS 300]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS break]}) ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 1]}) ) ) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub alldead]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS log_action_begin_msg]} {[DQ [LIT_CHARS "Killing all remaining processes"]]}) (Com {[LIT_CHARS killall5]} {[LIT_CHARS -9]} {[VarSub OMITPIDS]}) (Com {[LIT_CHARS log_action_end_msg]} {[LIT_CHARS 1]}) ) (ElseTrue) (List (Com {[LIT_CHARS log_action_begin_msg]} {[DQ [LIT_CHARS "All processes ended within "][VarSub seq][LIT_CHARS " seconds"]]}) (Com {[LIT_CHARS log_action_end_msg]} {[LIT_CHARS 0]}) ) ) ) ) (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 ":"]}) )