(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PATH) op: assign_op.Equal rhs: {(/sbin) (Id.Lit_Other ':') (/usr/sbin) (Id.Lit_Other ':') (/bin) (Id.Lit_Other ':') (/usr/bin) } spids: [48] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DESC) op: assign_op.Equal rhs: {(DQ ('Kernel crash collector'))} spids: [57] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NAME) op: assign_op.Equal rhs: {(kerneloops)} spids: [62] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DAEMON) op: assign_op.Equal rhs: {(/usr/sbin/) ($ Id.VSub_DollarName '$NAME')} spids: [65] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PIDFILE) op: assign_op.Equal rhs: {(/var/run/) ($ Id.VSub_DollarName '$NAME') (.pid)} spids: [69] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SCRIPTNAME) op: assign_op.Equal rhs: {(/etc/init.d/) ($ Id.VSub_DollarName '$NAME')} spids: [74] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ENABLED) op: assign_op.Equal rhs: {(1)} spids: [78] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(-x)} {(DQ ($ Id.VSub_DollarName '$DAEMON'))} {(Id.Lit_RBracket ']')}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:97) arg_word: {(0)} ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(-r)} {(/etc/default/) ($ Id.VSub_DollarName '$NAME')} {(Id.Lit_RBracket ']')} ) (C {(.)} {(/etc/default/) ($ Id.VSub_DollarName '$NAME')}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$ENABLED'))} {(Id.Lit_Equals '=')} {(DQ (1))} {(Id.Lit_RBracket ']')} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:138) arg_word: {(0)} ) ] ) (C {(.)} {(/lib/init/vars.sh)}) (C {(.)} {(/lib/lsb/init-functions)}) (command.ShFunction name: do_start body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [ {(start-stop-daemon)} {(--start)} {(--quiet)} {(--chuid)} {(kernoops) (Id.Lit_Other ':') (adm)} {(--pidfile)} {($ Id.VSub_DollarName '$PIDFILE')} {(--exec)} {($ Id.VSub_DollarName '$DAEMON')} {(--test)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:221) fd: -1 arg_word: {(/dev/null)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:229) arg_word: {(1)} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(start-stop-daemon)} {(--start)} {(--quiet)} {(--chuid)} {(kernoops) (Id.Lit_Other ':') (adm)} {(--pidfile)} {($ Id.VSub_DollarName '$PIDFILE')} {(--exec)} {($ Id.VSub_DollarName '$DAEMON')} {(--)} {($ Id.VSub_DollarName '$DAEMON_ARGS')} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:264) arg_word: {(2)} ) ] ) (command.Simple words: [{(pidofproc)} {($ Id.VSub_DollarName '$DAEMON')}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:273) fd: -1 arg_word: {($ Id.VSub_DollarName '$PIDFILE')} ) ] ) ] ) ) (command.ShFunction name: do_stop body: (command.BraceGroup children: [ (C {(start-stop-daemon)} {(--stop)} {(--quiet)} {(--retry) (Id.Lit_Equals '=') (TERM/30/KILL/5)} {(--pidfile)} {($ Id.VSub_DollarName '$PIDFILE')} {(--name)} {($ Id.VSub_DollarName '$NAME')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RETVAL) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_QMark '$?'))} spids: [335] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$RETVAL'))} {(Id.Lit_Equals '=')} {(2)} {(Id.Lit_RBracket ']')} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:355) arg_word: {(2)} ) ] ) (C {(rm)} {(-f)} {($ Id.VSub_DollarName '$PIDFILE')}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:371) arg_word: {(DQ ($ Id.VSub_DollarName '$RETVAL'))} ) ] ) ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(start)}] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(no)} {(Id.Lit_RBracket ']')} ) (C {(log_daemon_msg)} {(DQ ('Starting ') ($ Id.VSub_DollarName '$DESC'))} {(DQ ($ Id.VSub_DollarName '$NAME'))} ) ] ) (C {(do_start)}) (command.Case to_match: {(DQ ($ Id.VSub_QMark '$?'))} arms: [ (case_arm pat_list: [{(0)} {(1)}] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(no)} {(Id.Lit_RBracket ']')} ) (C {(log_end_msg)} {(0)}) ] ) ] spids: [432 435 456 -1] ) (case_arm pat_list: [{(2)}] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(no)} {(Id.Lit_RBracket ']')} ) (C {(log_end_msg)} {(1)}) ] ) ] spids: [459 460 481 -1] ) ] ) ] spids: [389 390 487 -1] ) (case_arm pat_list: [{(stop)}] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(no)} {(Id.Lit_RBracket ']')} ) (C {(log_daemon_msg)} {(DQ ('Stopping ') ($ Id.VSub_DollarName '$DESC'))} {(DQ ($ Id.VSub_DollarName '$NAME'))} ) ] ) (C {(do_stop)}) (command.Case to_match: {(DQ ($ Id.VSub_QMark '$?'))} arms: [ (case_arm pat_list: [{(0)} {(1)}] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(no)} {(Id.Lit_RBracket ']')} ) (C {(log_end_msg)} {(0)}) ] ) ] spids: [533 536 557 -1] ) (case_arm pat_list: [{(2)}] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(no)} {(Id.Lit_RBracket ']')} ) (C {(log_end_msg)} {(1)}) ] ) ] spids: [560 561 582 -1] ) ] ) ] spids: [490 491 588 -1] ) (case_arm pat_list: [{(status)}] action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {(status_of_proc)} {(DQ ($ Id.VSub_DollarName '$DAEMON'))} {(DQ ($ Id.VSub_DollarName '$NAME'))} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:607) arg_word: {(0)} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:613) arg_word: {($ Id.VSub_QMark '$?')} ) ] ) ] spids: [591 592 618 -1] ) (case_arm pat_list: [{(restart)} {(force-reload)}] action: [ (C {(log_daemon_msg)} {(DQ ('Restarting ') ($ Id.VSub_DollarName '$DESC'))} {(DQ ($ Id.VSub_DollarName '$NAME'))} ) (C {(do_stop)}) (command.Case to_match: {(DQ ($ Id.VSub_QMark '$?'))} arms: [ (case_arm pat_list: [{(0)} {(1)}] action: [ (C {(do_start)}) (command.Case to_match: {(DQ ($ Id.VSub_QMark '$?'))} arms: [ (case_arm pat_list: [{(0)}] action: [(C {(log_end_msg)} {(0)})] spids: [669 670 676 -1] ) (case_arm pat_list: [{(1)}] action: [(C {(log_end_msg)} {(1)})] spids: [679 680 686 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [(C {(log_end_msg)} {(1)})] spids: [692 693 699 -1] ) ] ) ] spids: [651 654 708 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [(C {(log_end_msg)} {(1)})] spids: [711 712 724 -1] ) ] ) ] spids: [621 624 730 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.Simple words: [ {(echo)} { (DQ ('Usage: ') ($ Id.VSub_DollarName '$SCRIPTNAME') (' {start|stop|status|restart|force-reload}') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:745) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:749) arg_word: {(3)} ) ] spids: [733 734 754 -1] ) ] ) (C {(Id.Lit_Other ':')}) ] )