(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH) op: assign_op.Equal rhs: {<'/sbin'> <Id.Lit_Colon ':'> <'/usr/sbin'> <Id.Lit_Colon ':'> <'/bin'> <Id.Lit_Colon ':'> <'/usr/bin'> } spids: [48] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DESC='> name:DESC) op: assign_op.Equal rhs: {(DQ <'Kernel crash collector'>)} spids: [57] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NAME='> name:NAME) op: assign_op.Equal rhs: {<kerneloops>} spids: [62] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DAEMON='> name:DAEMON) op: assign_op.Equal rhs: {<'/usr/sbin/'> ($ Id.VSub_DollarName NAME)} spids: [65] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PIDFILE='> name:PIDFILE) op: assign_op.Equal rhs: {<'/var/run/'> ($ Id.VSub_DollarName NAME) <.pid>} spids: [69] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SCRIPTNAME='> name:SCRIPTNAME) op: assign_op.Equal rhs: {<'/etc/init.d/'> ($ Id.VSub_DollarName NAME)} spids: [74] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ENABLED='> name:ENABLED) op: assign_op.Equal rhs: {<1>} spids: [78] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<-x>} {(DQ ($ Id.VSub_DollarName DAEMON))} {<Id.Lit_RBracket ']'>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> 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:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] ) (C {<.>} {<'/lib/init/vars.sh'>}) (C {<.>} {<'/lib/lsb/init-functions'>}) (command.ShFunction name: do_start body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [ {<start-stop-daemon>} {<--start>} {<--quiet>} {<--chuid>} {<kernoops> <Id.Lit_Colon ':'> <adm>} {<--pidfile>} {($ Id.VSub_DollarName PIDFILE)} {<--exec>} {($ Id.VSub_DollarName DAEMON)} {<--test>} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<start-stop-daemon>} {<--start>} {<--quiet>} {<--chuid>} {<kernoops> <Id.Lit_Colon ':'> <adm>} {<--pidfile>} {($ Id.VSub_DollarName PIDFILE)} {<--exec>} {($ Id.VSub_DollarName DAEMON)} {<-->} {($ Id.VSub_DollarName DAEMON_ARGS)} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<2>} ) ] ) (command.Simple words: [{<pidofproc>} {($ Id.VSub_DollarName DAEMON)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName PIDFILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: do_stop body: (BraceGroup left: <Id.Lit_LBrace '{'> 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 left:<Id.Lit_VarLike 'RETVAL='> name:RETVAL) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_QMark '?'))} spids: [335] ) ] redirects: [] ) (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: <Id.ControlFlow_Return return> arg_word: {<2>} ) ] ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName PIDFILE)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {(DQ ($ Id.VSub_DollarName RETVAL))} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (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] ) ] redirects: [] ) ] 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] ) ] redirects: [] ) ] 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:<Id.ControlFlow_Exit exit> arg_word:{<0>}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> 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] ) ] redirects: [] ) ] spids: [651 654 708 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(C {<log_end_msg>} {<1>})] spids: [711 712 724 -1] ) ] redirects: [] ) ] 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 op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<3>}) ] spids: [733 734 754 -1] ) ] redirects: [] ) (C {<Id.Lit_Colon ':'>}) ] )