(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PATH) op: assign_op.Equal rhs: {</sbin> <Id.Lit_Other ':'> </bin> <Id.Lit_Other ':'> </usr/bin>} spids: [43] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FSCK_LOGFILE) op: assign_op.Equal rhs: {</var/log/fsck/checkroot>} spids: [50] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$FSCKFIX'))} {<Id.Lit_RBracket ']'>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FSCKFIX) op: assign_op.Equal rhs: {<no>} spids: [63] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$SULOGIN'))} {<Id.Lit_RBracket ']'>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SULOGIN) op: assign_op.Equal rhs: {<no>} spids: [76] ) ] ) ] ) (C {<.>} {</lib/init/vars.sh>}) (C {<.>} {</lib/lsb/init-functions>}) (C {<.>} {</lib/init/mount-functions.sh>}) (command.ShFunction name: do_start body: (command.BraceGroup children: [ (C {<trap>} {(DQ )} {<INT>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$SULOGIN'))} {<Id.Lit_Equals '='>} {<yes>} {<Id.Lit_RBracket ']'>} ) (C {<sulogin>} {<-t>} {<30>} {($ Id.VSub_DollarName '$CONSOLE')}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KERNEL) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {<uname>} {<-s>})]) ) ) } spids: [158] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MACHINE) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {<uname>} {<-m>})]) ) ) } spids: [168] ) ] ) (C {<read_fstab>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ENABLE_SWAP) op: assign_op.Equal rhs: {<no>} spids: [199] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$KERNEL'))} arms: [ (case_arm pat_list: [{<Linux>}] action: [ (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$NOSWAP'))} {<Id.Lit_Equals '='>} {<yes>} {<Id.Lit_RBracket ']'>} ) ] action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {<Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>} ) (C {<log_warning_msg>} {(DQ <'Not activating swap as requested via bootoption noswap.'>)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ENABLE_SWAP) op: assign_op.Equal rhs: {<no>} spids: [255] ) ] ) ] spids: [216 231] ) ] else_action: [ (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$swap_on_lv'))} {<Id.Lit_Equals '='>} {<yes>} {<Id.Lit_RBracket ']'>} ) ] action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {<Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>} ) (C {<log_warning_msg>} {(DQ <'Not activating swap on logical volume.'>)} ) ] ) ] spids: [262 277] ) (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$swap_on_file'))} {<Id.Lit_Equals '='>} {<yes>} {<Id.Lit_RBracket ']'>} ) ] action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {<Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>} ) (C {<log_warning_msg>} {(DQ <'Not activating swap on swapfile.'>)}) ] ) ] spids: [301 316] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ENABLE_SWAP) op: assign_op.Equal rhs: {<yes>} spids: [343] ) ] ) ] ) ] ) ] spids: [212 213 353 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ENABLE_SWAP) op: assign_op.Equal rhs: {<yes>} spids: [360] ) ] ) ] spids: [356 357 364 -1] ) ] ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$ENABLE_SWAP'))} {<Id.Lit_Equals '='>} {<yes>} {<Id.Lit_RBracket ']'>} ) ] action: [ (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {<Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>} ) ] action: [ (C {<log_action_begin_msg>} {(DQ <'Activating swap'>)}) (command.Simple words: [{<swapon>} {<-a>} {<-e>}] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {</dev/null>} ) (redir.Redir op: <Id.Redir_GreatAnd '2>&'> fd: 2 arg_word: {<1>} ) ] ) (C {<log_action_end_msg>} {($ Id.VSub_QMark '$?')}) ] spids: [388 403] ) ] else_action: [ (C {<log_daemon_msg>} {(DQ <'Activating swap'>)}) (C {<swapon>} {<-a>} {<-v>}) (C {<log_end_msg>} {($ Id.VSub_QMark '$?')}) ] ) ] spids: [370 385] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KERNEL) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {<uname>})]) ) ) } spids: [492] ) ] ) (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$rootcheck'))} {<Id.Lit_Equals '='>} {<yes>} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$KERNEL'))} {<Id.Lit_Equals '='>} {<Linux>} {<Id.Lit_RBracket ']'>} ) ] ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ddev) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<mountpoint>} {<-qx>} {($ Id.VSub_DollarName '$rootdev')}) ] ) ) ) } spids: [532] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rdev) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [(C {<mountpoint>} {<-d>} {</>})] ) ) ) } spids: [544] ) ] ) (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$ddev'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$rdev'))} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$ddev'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <'4:0'>)} {<Id.Lit_RBracket ']'>} ) ] ) ] action: [ (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [(C {<mountpoint>} {<-qx>} {</dev/root>})] ) ) ) } {<Id.Lit_Equals '='>} {(DQ <'4:0'>)} {<Id.Lit_RBracket ']'>} ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rootdev) op: assign_op.Equal rhs: {</dev/root>} spids: [620] ) ] ) ] spids: [594 617] ) ] else_action: [ (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<rm>} {<-f>} {</run/rootdev>}) (C {<mknod>} {<-m>} {<600>} {</run/rootdev>} {<b>} { (braced_var_sub token: <Id.VSub_Name rdev> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Percent arg_word: {<':*'>} ) ) } { (braced_var_sub token: <Id.VSub_Name rdev> suffix_op: (suffix_op.Unary op_id: Id.VOp1_Pound arg_word: {<'*:'>} ) ) } ) (C {<Id.Lit_LBracket '['>} {<-e>} {</run/rootdev>} {<Id.Lit_RBracket ']'>} ) ] ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rootdev) op: assign_op.Equal rhs: {</run/rootdev>} spids: [679] ) ] ) ] spids: [627 676] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rootfatal) op: assign_op.Equal rhs: {<yes>} spids: [686] ) ] ) ] ) ] ) ] spids: [556 591] ) ] ) ] spids: [500 529] ) ] ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$rootfatal'))} {<Id.Lit_Equals '='>} {<yes>} {<Id.Lit_RBracket ']'>} ) ] action: [ (C {<log_failure_msg>} { (DQ <'The device node '> ($ Id.VSub_DollarName '$rootdev') <' for the root filesystem is missing or incorrect \n'> <'or there is no entry for the root filesystem listed in /etc/fstab. \n'> <'The system is also unable to create a temporary node in /run. \n'> <'This means you have to fix the problem manually.'> ) } ) (C {<log_warning_msg>} { (DQ <'A maintenance shell will now be started. \n'> <'CONTROL-D will terminate this shell and restart the system.'> ) } ) (command.If arms: [ (if_arm cond: [ (command.Pipeline children: [(C {<sulogin>} {($ Id.VSub_DollarName '$CONSOLE')})] negated: T ) ] action: [ (C {<log_failure_msg>} { (DQ <'Attempt to start maintenance shell failed. \n'> <'Will restart in 5 seconds.'> ) } ) (C {<sleep>} {<5>}) ] spids: [757 766] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {<Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>} ) (C {<log_action_msg>} {(DQ <'Will now restart'>)}) ] ) (C {<reboot>} {<-f>}) ] spids: [715 730] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FSCKCODE) op: assign_op.Equal rhs: {<0>} spids: [873] ) ] ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {<-e>} {</run/initramfs/fsck-root>} {<Id.Lit_RBracket ']'>} ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rootcheck) op: assign_op.Equal rhs: {<no>} spids: [892] ) ] ) ] spids: [878 889] ) ] ) (command.If arms: [ (if_arm cond: [(C {<is_fastboot_active>})] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$rootcheck'))} {<Id.Lit_Equals '='>} {<yes>} {<Id.Lit_RBracket ']'>} ) (C {<log_warning_msg>} {(DQ <'Fast boot enabled, so skipping root file system check.'>)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rootcheck) op: assign_op.Equal rhs: {<no>} spids: [929] ) ] ) ] spids: [900 905] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Simple words: [{<which>} {<findmnt>}] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {</dev/null>} ) (redir.Redir op: <Id.Redir_GreatAnd '2>&'> fd: 2 arg_word: {<1>} ) ] ) ] action: [ (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<findmnt>} {<-f>} {<-n>} {<-o>} {<FSTYPE>} {</>}) ] ) ) ) } {<Id.Lit_Equals '='>} {(DQ <btrfs>)} {<Id.Lit_RBracket ']'>} ) ] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$rootcheck'))} {<Id.Lit_Equals '='>} {<yes>} {<Id.Lit_RBracket ']'>} ) (C {<log_warning_msg>} {(DQ <'btrfs root detected, so skipping root file system check.'>)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rootcheck) op: assign_op.Equal rhs: {<no>} spids: [1006] ) ] ) ] spids: [953 982] ) ] ) ] spids: [937 950] ) ] ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$rootcheck'))} {<Id.Lit_Equals '='>} {<yes>} {<Id.Lit_RBracket ']'>} ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.Pipeline children: [ (C {<mount>} {<-n>} {<-o>} {<remount> <Id.Lit_Comma ','> <ro>} {($ Id.VSub_DollarName '$rootdev')} {</>} ) ] negated: T ) (command.Pipeline children: [ (command.Simple words: [ {<mount>} {<-n>} {<-o>} {<remount> <Id.Lit_Comma ','> <ro>} {<-t>} {<dummytype>} {($ Id.VSub_DollarName '$rootdev')} {</>} ] redirects: [ (redir.Redir op: <Id.Redir_Great '2>'> fd: 2 arg_word: {</dev/null>} ) ] ) ] negated: T ) (command.Pipeline children: [ (command.Simple words: [ {<mount>} {<-n>} {<-o>} {<remount> <Id.Lit_Comma ','> <ro>} {</>} ] redirects: [ (redir.Redir op: <Id.Redir_Great '2>'> fd: 2 arg_word: {</dev/null>} ) ] ) ] negated: T ) ] ) ] action: [ (C {<log_failure_msg>} { (DQ < 'Cannot check root file system because it is not mounted read-only.' > ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rootcheck) op: assign_op.Equal rhs: {<no>} spids: [1166] ) ] ) ] spids: [1087 1156] ) ] ) ] spids: [1017 1032] ) ] ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$rootcheck'))} {<Id.Lit_Equals '='>} {<yes>} {<Id.Lit_RBracket ']'>} ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<-f>} {</forcefsck>} {<Id.Lit_RBracket ']'>}) (C {<grep>} {<-q>} {<-s>} {<-w>} {<-i>} {(DQ <forcefsck>)} {</proc/cmdline>}) ] ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:force) op: assign_op.Equal rhs: {(DQ <-f>)} spids: [1239] ) ] ) ] spids: [1207 1236] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:force) op: assign_op.Equal rhs: {(DQ )} spids: [1248] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$FSCKFIX'))} {<Id.Lit_Equals '='>} {<yes>} {<Id.Lit_RBracket ']'>} ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fix) op: assign_op.Equal rhs: {(DQ <-y>)} spids: [1275] ) ] ) ] spids: [1257 1272] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fix) op: assign_op.Equal rhs: {(DQ <-a>)} spids: [1284] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:spinner) op: assign_op.Equal rhs: {(DQ <-C>)} spids: [1294] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$TERM'))} arms: [ (case_arm pat_list: [{<dumb>} {<network>} {<unknown>} {(DQ )}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:spinner) op: assign_op.Equal rhs: {(DQ )} spids: [1320] ) ] ) ] spids: [1309 1317 1324 -1] ) ] ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name KERNEL) <':'> (${ Id.VSub_Name MACHINE))} {<Id.Lit_Equals '='>} {<Linux> <Id.Lit_Other ':'> <s390x>} {<Id.Lit_RBracket ']'>} ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:spinner) op: assign_op.Equal rhs: {(DQ )} spids: [1360] ) ] ) ] spids: [1334 1357] ) ] ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {<Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>} ) ] action: [ (C {<log_action_begin_msg>} {(DQ <'Checking root file system'>)}) (C {<logsave>} {<-s>} {($ Id.VSub_DollarName '$FSCK_LOGFILE')} {<fsck>} {($ Id.VSub_DollarName '$spinner')} {($ Id.VSub_DollarName '$force')} {($ Id.VSub_DollarName '$fix')} {<-t>} {($ Id.VSub_DollarName '$roottype')} {($ Id.VSub_DollarName '$rootdev')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FSCKCODE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [1416] ) ] ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$FSCKCODE'))} {<Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ) ] action: [(C {<log_action_end_msg>} {<0>})] spids: [1420 1435] ) ] else_action: [ (C {<log_action_end_msg>} {<1>} {(DQ <'code '> ($ Id.VSub_DollarName '$FSCKCODE'))} ) ] ) ] spids: [1370 1385] ) ] else_action: [ (C {<log_daemon_msg>} {(DQ <'Will now check root file system'>)}) (C {<logsave>} {<-s>} {($ Id.VSub_DollarName '$FSCK_LOGFILE')} {<fsck>} {($ Id.VSub_DollarName '$spinner')} {($ Id.VSub_DollarName '$force')} {($ Id.VSub_DollarName '$fix')} {<-V>} {<-t>} {($ Id.VSub_DollarName '$roottype')} {($ Id.VSub_DollarName '$rootdev')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FSCKCODE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [1492] ) ] ) (C {<log_end_msg>} {($ Id.VSub_DollarName '$FSCKCODE')}) ] ) ] spids: [1189 1204] ) ] ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$FSCKCODE'))} {<-eq>} {<32>} {<Id.Lit_RBracket ']'>} ) ] action: [(C {<log_warning_msg>} {(DQ <'File system check was interrupted by user'>)})] spids: [1540 1555] ) (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$FSCKCODE'))} {<-gt>} {<3>} {<Id.Lit_RBracket ']'>} ) ] action: [ (C {<log_failure_msg>} { (DQ < 'An automatic file system check (fsck) of the root filesystem failed. \n' > <'A manual fsck must be performed, then the system restarted. \n'> <'The fsck should be performed in maintenance mode with the \n'> <'root filesystem mounted in read-only mode.'> ) } ) (C {<log_warning_msg>} { (DQ <'The root filesystem is currently mounted in read-only mode. \n'> <'A maintenance shell will now be started. \n'> <'After performing system maintenance, press CONTROL-D \n'> <'to terminate the maintenance shell and restart the system.'> ) } ) (command.If arms: [ (if_arm cond: [ (command.Pipeline children: [(C {<sulogin>} {($ Id.VSub_DollarName '$CONSOLE')})] negated: T ) ] action: [ (C {<log_failure_msg>} { (DQ <'Attempt to start maintenance shell failed. \n'> <'Will restart in 5 seconds.'> ) } ) (C {<sleep>} {<5>}) ] spids: [1615 1624] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {<Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>} ) (C {<log_action_msg>} {(DQ <'Will now restart'>)}) ] ) (C {<reboot>} {<-f>}) ] spids: [1565 1580] ) (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$FSCKCODE'))} {<-gt>} {<1>} {<Id.Lit_RBracket ']'>} ) ] action: [ (C {<log_failure_msg>} { (DQ <'The file system check corrected errors on the root partition \n'> <'but requested that the system be restarted.'> ) } ) (C {<log_warning_msg>} {(DQ <'The system will be restarted in 5 seconds.'>)}) (C {<sleep>} {<5>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {<Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>} ) (C {<log_action_msg>} {(DQ <'Will now restart'>)}) ] ) (C {<reboot>} {<-f>}) ] spids: [1669 1684] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Pipeline children: [ (command.Simple words: [ {<mount>} {<-n>} {<-o>} {<remount> <Id.Lit_Comma ','> ($ Id.VSub_DollarName '$rootopts') <Id.Lit_Comma ','> ($ Id.VSub_DollarName '$rootmode') } {($ Id.VSub_DollarName '$fstabroot')} {</>} ] redirects: [ (redir.Redir op: <Id.Redir_Great '2>'> fd: 2 arg_word: {</dev/null>} ) ] ) ] negated: T ) ] action: [ (C {<mount>} {<-n>} {<-o>} {<remount> <Id.Lit_Comma ','> ($ Id.VSub_DollarName '$rootopts') <Id.Lit_Comma ','> ($ Id.VSub_DollarName '$rootmode') } {</>} ) ] spids: [1761 1785] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$rootmode'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <ro>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [(C {<mtab_migrate>})] spids: [1819 1837] ) ] ) (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<selinux_enabled>}) (C {<Id.Lit_LBracket '['>} {<-x>} {</sbin/restorecon>} {<Id.Lit_RBracket ']'>}) (C {<Id.Lit_LBracket '['>} {<-r>} {</etc/mtab>} {<Id.Lit_RBracket ']'>}) ] ) ] action: [(C {<restorecon>} {</etc/mtab>})] spids: [1847 1872] ) ] ) (C {<rm>} {<-f>} {</run/rootdev>}) (C {</etc/init.d/mountkernfs.sh>} {<reload>}) (C {</etc/init.d/mountdevsubfs.sh>} {<reload>}) ] ) ) (command.ShFunction name: do_status body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rootrw) op: assign_op.Equal rhs: {<false>} spids: [1945] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:swapon) op: assign_op.Equal rhs: {<false>} spids: [1949] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {</etc/mtab>} {<Id.Lit_RBracket ']'>}) terminator: <Id.Op_Semi _> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {<grep>} {(DQ <' / '>)} {</etc/mtab>}) (C {<grep>} {<-q>} {<rw>}) ] negated: F ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rootrw) op: assign_op.Equal rhs: {<true>} spids: [1990] ) ] ) ] spids: [1968 1987] ) ] ) ] spids: [1953 1965] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {</proc/swaps>} {<Id.Lit_RBracket ']'>}) terminator: <Id.Op_Semi _> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<cat>} {</proc/swaps>}) (C {<grep>} {<-v>} {<Id.Lit_Other '^'> <Filename>}) ] negated: F ) ] ) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:swapon) op: assign_op.Equal rhs: {<true>} spids: [2042] ) ] ) ] spids: [2015 2039] ) ] ) ] spids: [2000 2012] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<true>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$rootrw'))} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {<true>} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$swapon'))} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})] spids: [2052 2082] ) ] else_action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<4>})] ) ] ) ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{<start>} {(DQ )}] action: [(C {<do_start>})] spids: [2112 2116 2122 -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.Redir op:<Id.Redir_GreatAnd '>&'> fd:-1 arg_word:{<2>})] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<3>}) ] spids: [2125 2130 2150 -1] ) (case_arm pat_list:[{<stop>}] spids:[2153 2154 2161 -1]) (case_arm pat_list: [{<status>}] action: [ (C {<do_status>}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_QMark '$?')} ) ] spids: [2164 2165 2176 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Simple words: [{<echo>} {(DQ <'Usage: checkroot.sh [start|stop]'>)}] redirects: [(redir.Redir op:<Id.Redir_GreatAnd '>&'> fd:-1 arg_word:{<2>})] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<3>}) ] spids: [2179 2180 2198 -1] ) ] ) (C {<Id.Lit_Other ':'>}) ] )