(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: {<'/bin'> <Id.Lit_Colon ':'> <'/usr/bin'> <Id.Lit_Colon ':'> <'/sbin'> <Id.Lit_Colon ':'> <'/usr/sbin'> } spids: [52] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DESC='> name:DESC) op: assign_op.Equal rhs: {(DQ <'cron daemon'>)} spids: [61] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NAME='> name:NAME) op: assign_op.Equal rhs: {<cron>} spids: [66] ) ] 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/cron'>} spids: [69] ) ] 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/crond.pid'>} spids: [72] ) ] 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/'> (DQ ($ Id.VSub_DollarName NAME))} spids: [75] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {<-f>} {($ Id.VSub_DollarName DAEMON)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] ) (C {<.>} {<'/lib/lsb/init-functions'>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-r>} {<'/etc/default/cron'>} {<Id.Lit_RBracket ']'>}) (C {<.>} {<'/etc/default/cron'>}) ] ) (command.ShFunction name: parse_environment body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ForEach iter_names: [ENV_FILE] iterable: (for_iter.Words words:[{<'/etc/environment'>} {<'/etc/default/locale'>}]) body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<-r>} {(DQ ($ Id.VSub_DollarName ENV_FILE))} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<-s>} {(DQ ($ Id.VSub_DollarName ENV_FILE))} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] ) (command.ForEach iter_names: [var] iterable: (for_iter.Words words: [{<LANG>} {<LANGUAGE>} {<LC_ALL>} {<LC_CTYPE>}] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'value='> name:value) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<egrep>} {(DQ <'^'> (${ Id.VSub_Name var) <'='>)} {(DQ ($ Id.VSub_DollarName ENV_FILE))} ) (C {<tail>} {<-n1>}) (C {<cut>} {<-d> <Id.Lit_Equals '='>} {<-f2>}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [205] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName value))} {<Id.Lit_RBracket ']'>} ) (C {<eval>} {<export>} {($ Id.VSub_DollarName var) <Id.Lit_Equals '='> ($ Id.VSub_DollarName value) } ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName value))} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName ENV_FILE))} {<Id.Lit_Equals '='>} {<'/etc/environment'>} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<log_warning_msg>} { (DQ < '/etc/environment has been deprecated for locale information; use /etc/default/locale for ' > ($ Id.VSub_DollarName var) <'='> ($ Id.VSub_DollarName value) <' instead'> ) } ) ] spids: [262 289] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) ] ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName TZ))} {<-a>} {<-e>} {<'/etc/timezone'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TZ='> name:TZ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<cat>} {<'/etc/timezone'>}) right: <Id.Backtick_Right '`'> ) } spids: [338] ) ] redirects: [] ) ] spids: [316 335] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName READ_ENV))} {<Id.Lit_Equals '='>} {(DQ <yes>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<parse_environment>})] spids: [357 375] ) ] else_action: [] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_Number 1))} arms: [ (case_arm pat_list: [{<start>}] action: [ (C {<log_daemon_msg>} {(DQ <'Starting periodic command scheduler'>)} {(DQ <cron>)}) (C {<start_daemon>} {<-p>} {($ Id.VSub_DollarName PIDFILE)} {($ Id.VSub_DollarName DAEMON)} {($ Id.VSub_DollarName EXTRA_OPTS)} ) (C {<log_end_msg>} {($ Id.VSub_QMark '?')}) ] spids: [392 393 422 -1] ) (case_arm pat_list: [{<stop>}] action: [ (C {<log_daemon_msg>} {(DQ <'Stopping periodic command scheduler'>)} {(DQ <cron>)}) (C {<killproc>} {<-p>} {($ Id.VSub_DollarName PIDFILE)} {($ Id.VSub_DollarName DAEMON)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RETVAL='> name:RETVAL) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [447] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName RETVAL)} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {<-e>} {(DQ ($ Id.VSub_DollarName PIDFILE))} {<Id.Lit_RBracket ']'>} ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName PIDFILE)}) ] ) (C {<log_end_msg>} {($ Id.VSub_DollarName RETVAL)}) ] spids: [424 425 487 -1] ) (case_arm pat_list: [{<restart>}] action: [ (C {<log_daemon_msg>} {(DQ <'Restarting periodic command scheduler'>)} {(DQ <cron>)}) (C {($ Id.VSub_Number 0)} {<stop>}) (C {($ Id.VSub_Number 0)} {<start>}) ] spids: [489 490 514 -1] ) (case_arm pat_list: [{<reload>} {<force-reload>}] action: [ (C {<log_daemon_msg>} {(DQ <'Reloading configuration files for periodic command scheduler'>)} {(DQ <cron>)} ) (C {<log_end_msg>} {<0>}) ] spids: [516 519 541 -1] ) (case_arm pat_list: [{<status>}] action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {<status_of_proc>} {<-p>} {($ Id.VSub_DollarName PIDFILE)} {($ Id.VSub_DollarName DAEMON)} {($ 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: [543 544 570 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<log_action_msg>} {(DQ <'Usage: /etc/init.d/cron {start|stop|status|restart|reload|force-reload}'>)} ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<2>}) ] spids: [572 573 587 -1] ) ] redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )