(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: [31] ) ] redirects: [] ) (C {<.>} {<'/lib/init/vars.sh'>}) (C {<.>} {<'/lib/lsb/init-functions'>}) (C {<umask>} {<022>}) (command.ShFunction name: do_stop body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PROTECTED_MOUNTS='> name: PROTECTED_MOUNTS ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<sed>} {<-n>} {(SQ <':a;/^[^ ]* \\/ /!{H;n;ba};{H;s/.*//;x;s/\\n//;p}'>)} {<'/proc/mounts'>} ) right: <Id.Eof_RParen _> ) ) } spids: [63] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WEAK_MTPTS='> name:WEAK_MTPTS) op: assign_op.Equal rhs: {(DQ )} spids: [79] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REG_MTPTS='> name:REG_MTPTS) op: assign_op.Equal rhs: {(DQ )} spids: [87] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TMPFS_MTPTS='> name:TMPFS_MTPTS) op: assign_op.Equal rhs: {(DQ )} spids: [92] ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [(C {<read>} {<-r>} {<DEV>} {<MTPT>} {<FSTYPE>} {<REST>})] ) body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName PROTECTED_MOUNTS))}) (C {<grep>} {<-qs>} { (DQ <'^'> ($ Id.VSub_DollarName DEV) <' '> ($ Id.VSub_DollarName MTPT) <' '> ) } ) ] negated: F stderr_indices: [] ) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName MTPT))} arms: [ (case_arm pat_list: [ {<'/'>} {<'/proc'>} {<'/dev'>} {<'/.dev'>} {<'/dev/pts'>} {<'/dev/shm'>} {<'/dev/.static/dev'>} {<'/proc/'> <Id.Lit_Star '*'>} {<'/sys'>} {<'/sys/'> <Id.Lit_Star '*'>} {<'/run'>} {<'/run/'> <Id.Lit_Star '*'>} {<'/dev/vcs'>} ] action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)] spids: [149 177 183 -1] ) ] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName FSTYPE))} arms: [ (case_arm pat_list: [ {<Id.KW_Proc proc>} {<procfs>} {<linprocfs>} {<sysfs>} {<usbfs>} {<usbdevfs>} {<devpts>} ] action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)] spids: [198 211 217 -1] ) (case_arm pat_list: [{<tmpfs>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TMPFS_MTPTS='> name: TMPFS_MTPTS ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName MTPT) <' '> ($ Id.VSub_DollarName TMPFS_MTPTS) ) } spids: [224] ) ] redirects: [] ) ] spids: [220 221 232 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName PROTECTED_MOUNTS))} ) (C {<grep>} {<-qs>} {(DQ <'^'> ($ Id.VSub_DollarName DEV) <' '>)} ) ] negated: F stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WEAK_MTPTS='> name: WEAK_MTPTS ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName MTPT) <' '> ($ Id.VSub_DollarName WEAK_MTPTS) ) } spids: [263] ) ] redirects: [] ) ] spids: [239 260] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REG_MTPTS='> name: REG_MTPTS ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName MTPT) <' '> ($ Id.VSub_DollarName REG_MTPTS) ) } spids: [274] ) ] redirects: [] ) ] redirects: [] ) ] spids: [235 236 285 -1] ) ] redirects: [] ) ] ) redirects: [(redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<'/proc/mounts'>})] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName TMPFS_MTPTS))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName VERBOSE))} {<Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<log_action_begin_msg>} {(DQ <'Unmounting temporary filesystems'>)}) (C {<fstab-decode>} {<umount>} {($ Id.VSub_DollarName TMPFS_MTPTS)}) (C {<log_action_end_msg>} {($ Id.VSub_QMark '?')}) ] spids: [333 348] ) ] else_action: [ (C {<log_daemon_msg>} {(DQ <'Will now unmount temporary filesystems'>)}) (C {<fstab-decode>} {<umount>} {<-v>} {($ Id.VSub_DollarName TMPFS_MTPTS)}) (C {<log_end_msg>} {($ Id.VSub_QMark '?')}) ] redirects: [] ) ] spids: [319 330] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName VERBOSE))} {<Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<log_action_begin_msg>} {(DQ <'Deactivating swap'>)}) (command.Simple words: [{<swapoff>} {<-a>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (C {<log_action_end_msg>} {($ Id.VSub_QMark '?')}) ] spids: [413 428] ) ] else_action: [ (C {<log_daemon_msg>} {(DQ <'Will now deactivate swap'>)}) (C {<swapoff>} {<-a>} {<-v>}) (C {<log_end_msg>} {($ Id.VSub_QMark '?')}) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName WEAK_MTPTS))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName VERBOSE))} {<Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<log_action_begin_msg>} {(DQ <'Unmounting weak filesystems'>)}) (C {<fstab-decode>} {<umount>} {<-r>} {<-d>} {($ Id.VSub_DollarName WEAK_MTPTS)} ) (C {<log_action_end_msg>} {($ Id.VSub_QMark '?')}) ] spids: [507 522] ) ] else_action: [ (C {<log_daemon_msg>} {(DQ <'Will now unmount weak filesystems'>)}) (C {<fstab-decode>} {<umount>} {<-v>} {<-r>} {<-d>} {($ Id.VSub_DollarName WEAK_MTPTS)} ) (C {<log_end_msg>} {($ Id.VSub_QMark '?')}) ] redirects: [] ) ] spids: [489 500] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName REG_MTPTS))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName VERBOSE))} {<Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<log_action_begin_msg>} {(DQ <'Unmounting local filesystems'>)}) (C {<fstab-decode>} {<umount>} {<-f>} {<-r>} {<-d>} {($ Id.VSub_DollarName REG_MTPTS)} ) (C {<log_action_end_msg>} {($ Id.VSub_QMark '?')}) ] spids: [596 611] ) ] else_action: [ (C {<log_daemon_msg>} {(DQ <'Will now unmount local filesystems'>)}) (C {<fstab-decode>} {<umount>} {<-f>} {<-v>} {<-r>} {<-d>} {($ Id.VSub_DollarName REG_MTPTS)} ) (C {<log_end_msg>} {($ Id.VSub_QMark '?')}) ] redirects: [] ) ] spids: [582 593] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Case to_match: {(DQ ($ Id.VSub_Number 1))} arms: [ (case_arm pat_list:[{<start>} {<status>}] action:[] spids:[686 689 696 -1]) (case_arm pat_list: [{<restart>} {<reload>} {<force-reload>}] action: [ (command.Simple words: [{<echo>} {(DQ <'Error: argument \''> ($ Id.VSub_Number 1) <'\' not supported'>)}] 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: [699 704 724 -1] ) (case_arm pat_list:[{<stop>}] action:[(C {<do_stop>})] spids:[727 728 734 -1]) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Simple words: [{<echo>} {(DQ <'Usage: '> ($ Id.VSub_Number 0) <' start|stop'>)}] 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: [737 738 758 -1] ) ] redirects: [] ) (C {<Id.Lit_Colon ':'>}) ] )