(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 ':'> <'/bin'> <Id.Lit_Colon ':'> <'/usr/bin'>} spids: [43] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FSCK_LOGFILE='> name:FSCK_LOGFILE) op: assign_op.Equal rhs: {<'/var/log/fsck/checkroot'>} spids: [50] ) ] redirects: [] ) (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 left:<Id.Lit_VarLike 'FSCKFIX='> name:FSCKFIX) op: assign_op.Equal rhs: {<no>} spids: [63] ) ] redirects: [] ) ] ) (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 left:<Id.Lit_VarLike 'SULOGIN='> name:SULOGIN) op: assign_op.Equal rhs: {<no>} spids: [76] ) ] redirects: [] ) ] ) (C {<.>} {<'/lib/init/vars.sh'>}) (C {<.>} {<'/lib/lsb/init-functions'>}) (C {<.>} {<'/lib/init/mount-functions.sh'>}) (command.ShFunction name: do_start body: (BraceGroup left: <Id.Lit_LBrace '{'> 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 left:<Id.Lit_VarLike 'KERNEL='> name:KERNEL) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<uname>} {<-s>}) right: <Id.Eof_RParen _> ) ) } spids: [158] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MACHINE='> name:MACHINE) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<uname>} {<-m>}) right: <Id.Eof_RParen _> ) ) } spids: [168] ) ] redirects: [] ) (C {<read_fstab>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ENABLE_SWAP='> name:ENABLE_SWAP) op: assign_op.Equal rhs: {<no>} spids: [199] ) ] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName KERNEL))} arms: [ (case_arm pat_list: [{<Linux>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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 left: <Id.Lit_VarLike 'ENABLE_SWAP='> name: ENABLE_SWAP ) op: assign_op.Equal rhs: {<no>} spids: [255] ) ] redirects: [] ) ] spids: [216 231] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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: (condition.Shell commands: [ (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 left: <Id.Lit_VarLike 'ENABLE_SWAP='> name: ENABLE_SWAP ) op: assign_op.Equal rhs: {<yes>} spids: [343] ) ] redirects: [] ) ] redirects: [] ) ] redirects: [] ) ] spids: [212 213 353 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ENABLE_SWAP='> name: ENABLE_SWAP ) op: assign_op.Equal rhs: {<yes>} spids: [360] ) ] redirects: [] ) ] spids: [356 357 364 -1] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName ENABLE_SWAP))} {<Id.Lit_Equals '='>} {<yes>} {<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 <'Activating swap'>)}) (command.Simple words: [{<swapon>} {<-a>} {<-e>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) (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 '?')}) ] redirects: [] ) ] spids: [370 385] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KERNEL='> name:KERNEL) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<uname>}) right: <Id.Eof_RParen _> ) ) } spids: [492] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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 left:<Id.Lit_VarLike 'ddev='> name:ddev) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<mountpoint>} {<-qx>} {($ Id.VSub_DollarName rootdev)}) right: <Id.Eof_RParen _> ) ) } spids: [532] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rdev='> name:rdev) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<mountpoint>} {<-d>} {<'/'>}) right: <Id.Eof_RParen _> ) ) } spids: [544] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<mountpoint>} {<-qx>} {<'/dev/root'>}) right: <Id.Eof_RParen _> ) ) } {<Id.Lit_Equals '='>} {(DQ <'4:0'>)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'rootdev='> name: rootdev ) op: assign_op.Equal rhs: {<'/dev/root'>} spids: [620] ) ] redirects: [] ) ] spids: [594 617] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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 left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name rdev> var_name: rdev suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<':'> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) } { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name rdev> var_name: rdev suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<Id.Lit_Other '*'> <':'>} ) right: <Id.Right_DollarBrace '}'> ) } ) (C {<Id.Lit_LBracket '['>} {<-e>} {<'/run/rootdev'>} {<Id.Lit_RBracket ']'>} ) ] ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'rootdev='> name: rootdev ) op: assign_op.Equal rhs: {<'/run/rootdev'>} spids: [681] ) ] redirects: [] ) ] spids: [627 678] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'rootfatal='> name: rootfatal ) op: assign_op.Equal rhs: {<yes>} spids: [688] ) ] redirects: [] ) ] redirects: [] ) ] redirects: [] ) ] spids: [556 591] ) ] else_action: [] redirects: [] ) ] spids: [500 529] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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: (condition.Shell commands: [ (command.Pipeline children: [(C {<sulogin>} {($ Id.VSub_DollarName CONSOLE)})] negated: T stderr_indices: [] ) ] ) action: [ (C {<log_failure_msg>} { (DQ <'Attempt to start maintenance shell failed. \n'> <'Will restart in 5 seconds.'> ) } ) (C {<sleep>} {<5>}) ] spids: [759 768] ) ] else_action: [] redirects: [] ) (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: [717 732] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FSCKCODE='> name:FSCKCODE) op: assign_op.Equal rhs: {<0>} spids: [875] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-e>} {<'/run/initramfs/fsck-root'>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rootcheck='> name:rootcheck) op: assign_op.Equal rhs: {<no>} spids: [894] ) ] redirects: [] ) ] spids: [880 891] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands:[(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 left:<Id.Lit_VarLike 'rootcheck='> name:rootcheck) op: assign_op.Equal rhs: {<no>} spids: [931] ) ] redirects: [] ) ] spids: [902 907] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Simple words: [{<which>} {<findmnt>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<findmnt>} {<-f>} {<-n>} {<-o>} {<FSTYPE>} {<'/'>}) right: <Id.Eof_RParen _> ) ) } {<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 left: <Id.Lit_VarLike 'rootcheck='> name: rootcheck ) op: assign_op.Equal rhs: {<no>} spids: [1008] ) ] redirects: [] ) ] spids: [955 984] ) ] else_action: [] redirects: [] ) ] spids: [939 952] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName rootcheck))} {<Id.Lit_Equals '='>} {<yes>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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 stderr_indices: [] ) (command.Pipeline children: [ (command.Simple words: [ {<mount>} {<-n>} {<-o>} {<remount> <Id.Lit_Comma ','> <ro>} {<-t>} {<dummytype>} {($ Id.VSub_DollarName rootdev)} {<'/'>} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) ] negated: T stderr_indices: [] ) (command.Pipeline children: [ (command.Simple words: [ {<mount>} {<-n>} {<-o>} {<remount> <Id.Lit_Comma ','> <ro>} {<'/'>} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) ] negated: T stderr_indices: [] ) ] ) ] ) 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 left: <Id.Lit_VarLike 'rootcheck='> name: rootcheck ) op: assign_op.Equal rhs: {<no>} spids: [1168] ) ] redirects: [] ) ] spids: [1089 1158] ) ] else_action: [] redirects: [] ) ] spids: [1019 1034] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName rootcheck))} {<Id.Lit_Equals '='>} {<yes>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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 left:<Id.Lit_VarLike 'force='> name:force) op: assign_op.Equal rhs: {(DQ <-f>)} spids: [1241] ) ] redirects: [] ) ] spids: [1209 1238] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'force='> name:force) op: assign_op.Equal rhs: {(DQ )} spids: [1250] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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 left:<Id.Lit_VarLike 'fix='> name:fix) op: assign_op.Equal rhs: {(DQ <-y>)} spids: [1277] ) ] redirects: [] ) ] spids: [1259 1274] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fix='> name:fix) op: assign_op.Equal rhs: {(DQ <-a>)} spids: [1286] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'spinner='> name:spinner) op: assign_op.Equal rhs: {(DQ <-C>)} spids: [1296] ) ] redirects: [] ) (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 left: <Id.Lit_VarLike 'spinner='> name: spinner ) op: assign_op.Equal rhs: {(DQ )} spids: [1322] ) ] redirects: [] ) ] spids: [1311 1319 1326 -1] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name KERNEL) <':'> (${ Id.VSub_Name MACHINE))} {<Id.Lit_Equals '='>} {<Linux> <Id.Lit_Colon ':'> <s390x>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'spinner='> name: spinner ) op: assign_op.Equal rhs: {(DQ )} spids: [1362] ) ] redirects: [] ) ] spids: [1336 1359] ) ] 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 <'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 left: <Id.Lit_VarLike 'FSCKCODE='> name: FSCKCODE ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [1418] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName FSCKCODE))} {<Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ) ] ) action: [(C {<log_action_end_msg>} {<0>})] spids: [1422 1437] ) ] else_action: [ (C {<log_action_end_msg>} {<1>} {(DQ <'code '> ($ Id.VSub_DollarName FSCKCODE))} ) ] redirects: [] ) ] spids: [1372 1387] ) ] 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 left:<Id.Lit_VarLike 'FSCKCODE='> name:FSCKCODE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [1494] ) ] redirects: [] ) (C {<log_end_msg>} {($ Id.VSub_DollarName FSCKCODE)}) ] redirects: [] ) ] spids: [1191 1206] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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: [1542 1557] ) (if_arm cond: (condition.Shell commands: [ (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: (condition.Shell commands: [ (command.Pipeline children: [(C {<sulogin>} {($ Id.VSub_DollarName CONSOLE)})] negated: T stderr_indices: [] ) ] ) action: [ (C {<log_failure_msg>} { (DQ <'Attempt to start maintenance shell failed. \n'> <'Will restart in 5 seconds.'> ) } ) (C {<sleep>} {<5>}) ] spids: [1617 1626] ) ] else_action: [] redirects: [] ) (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: [1567 1582] ) (if_arm cond: (condition.Shell commands: [ (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: [1671 1686] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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 op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) ] negated: T stderr_indices: [] ) ] ) action: [ (C {<mount>} {<-n>} {<-o>} {<remount> <Id.Lit_Comma ','> ($ Id.VSub_DollarName rootopts) <Id.Lit_Comma ','> ($ Id.VSub_DollarName rootmode) } {<'/'>} ) ] spids: [1763 1787] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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: [1821 1839] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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: [1849 1874] ) ] else_action: [] redirects: [] ) (C {<rm>} {<-f>} {<'/run/rootdev'>}) (C {<'/etc/init.d/mountkernfs.sh'>} {<reload>}) (C {<'/etc/init.d/mountdevsubfs.sh'>} {<reload>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: do_status body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rootrw='> name:rootrw) op: assign_op.Equal rhs: {<false>} spids: [1947] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'swapon='> name:swapon) op: assign_op.Equal rhs: {<false>} spids: [1951] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/etc/mtab'>} {<Id.Lit_RBracket ']'>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<grep>} {(DQ <' / '>)} {<'/etc/mtab'>}) (C {<grep>} {<-q>} {<rw>}) ] negated: F stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rootrw='> name:rootrw) op: assign_op.Equal rhs: {<true>} spids: [1992] ) ] redirects: [] ) ] spids: [1970 1989] ) ] else_action: [] redirects: [] ) ] spids: [1955 1967] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/proc/swaps'>} {<Id.Lit_RBracket ']'>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/proc/swaps'>}) (C {<grep>} {<-v>} {<Id.Lit_Other '^'> <Filename>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'swapon='> name:swapon) op: assign_op.Equal rhs: {<true>} spids: [2044] ) ] redirects: [] ) ] spids: [2017 2041] ) ] else_action: [] redirects: [] ) ] spids: [2002 2014] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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: [2054 2084] ) ] else_action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<4>})] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Case to_match: {(DQ ($ Id.VSub_Number 1))} arms: [ (case_arm pat_list: [{<start>} {(DQ )}] action: [(C {<do_start>})] spids: [2114 2118 2124 -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: [2127 2132 2152 -1] ) (case_arm pat_list:[{<stop>}] action:[] spids:[2155 2156 2163 -1]) (case_arm pat_list: [{<status>}] action: [ (C {<do_status>}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_QMark '?')} ) ] spids: [2166 2167 2178 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Simple words: [{<echo>} {(DQ <'Usage: checkroot.sh [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: [2181 2182 2200 -1] ) ] redirects: [] ) (C {<Id.Lit_Colon ':'>}) ] )