(command.CommandList children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:SAVEDFILE spids:[58]) op: Equal rhs: {(/var/lib/urandom/random-seed)} spids: [58] ) ] spids: [58] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(-c)} {(/dev/urandom)} {(Lit_Other ']')}) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:PATH spids:[77]) op: Equal rhs: {(/sbin) (Lit_Other ':') (/bin)} spids: [77] ) ] spids: [77] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:POOLBYTES spids:[86]) op: Equal rhs: { (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Slash left: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithWord w: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.SimpleCommand words: [ {(cat)} {(/proc/sys/kernel/random/poolsize)} ] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [91 98] ) } ) right: (arith_expr.ArithWord w:{(Lit_Digits 7)}) ) right: (arith_expr.ArithWord w:{(Lit_Digits 8)}) ) spids: [87 110] ) } spids: [86] ) ] spids: [86] ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:POOLBYTES spids:[117]) op: Equal rhs: {(512)} spids: [117] ) ] spids: [117] ) ] spids: [16777215 114] ) ] spids: [16777215 120] ) (C {(.)} {(/lib/init/vars.sh)}) (C {(.)} {(/lib/lsb/init-functions)}) (command.FuncDef name: do_status body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-f)} {($ VSub_DollarName '$SAVEDFILE')} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [16777215 152] ) ] else_action: [(command.ControlFlow token:<ControlFlow_Return return> arg_word:{(4)})] spids: [160 168] ) ] spids: [137] ) spids: [132 136] ) (command.Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(start)} {(DQ )}] action: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$VERBOSE'))} {(Lit_Other '=')} {(no)} {(Lit_Other ']')} ) (C {(log_action_begin_msg)} {(DQ ('Initializing random number generator'))}) ] ) (command.Subshell command_list: (command.CommandList children: [ (C {(date)} {(Lit_Other '+') (Lit_Other '%') (s.) (Lit_Other '%') (N)}) (command.If arms: [ (if_arm cond: [ (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_DollarName '$SAVEDFILE'))} {(Lit_Other ']')} ) ] action: [(C {(cat)} {(DQ ($ VSub_DollarName '$SAVEDFILE'))})] spids: [16777215 272] ) ] spids: [16777215 282] ) ] ) redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/urandom)})] spids: [238 301] ) (C {(umask)} {(077)}) (command.SimpleCommand words: [ {(dd)} {(Lit_VarLike 'if=') (/dev/urandom)} {(Lit_VarLike 'of=') ($ VSub_DollarName '$SAVEDFILE')} {(Lit_VarLike 'bs=') ($ VSub_DollarName '$POOLBYTES')} {(Lit_VarLike 'count=') (1)} ] redirects: [ (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)}) (redir.Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)}) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ES spids:[362]) op: Equal rhs: {($ VSub_QMark '$?')} spids: [362] ) ] spids: [362] ) (C {(umask)} {(022)}) (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$VERBOSE'))} {(Lit_Other '=')} {(no)} {(Lit_Other ']')} ) (C {(log_action_end_msg)} {($ VSub_DollarName '$ES')}) ] ) ] spids: [182 186 390 16777215] ) (case_arm pat_list: [{(stop)}] action: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$VERBOSE'))} {(Lit_Other '=')} {(no)} {(Lit_Other ']')} ) (C {(log_action_begin_msg)} {(DQ ('Saving random seed'))}) ] ) (C {(umask)} {(077)}) (command.SimpleCommand words: [ {(dd)} {(Lit_VarLike 'if=') (/dev/urandom)} {(Lit_VarLike 'of=') ($ VSub_DollarName '$SAVEDFILE')} {(Lit_VarLike 'bs=') ($ VSub_DollarName '$POOLBYTES')} {(Lit_VarLike 'count=') (1)} ] redirects: [ (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)}) (redir.Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)}) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ES spids:[460]) op: Equal rhs: {($ VSub_QMark '$?')} spids: [460] ) ] spids: [460] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$VERBOSE'))} {(Lit_Other '=')} {(no)} {(Lit_Other ']')} ) (C {(log_action_end_msg)} {($ VSub_DollarName '$ES')}) ] ) ] spids: [393 394 483 16777215] ) (case_arm pat_list: [{(status)}] action: [ (C {(do_status)}) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {($ VSub_QMark '$?')} ) ] spids: [486 487 498 16777215] ) (case_arm pat_list: [{(restart)} {(reload)} {(force-reload)}] action: [ (command.SimpleCommand words: [{(echo)} {(DQ ("Error: argument '") ($ VSub_Number '$1') ("' not supported"))}] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(3)}) ] spids: [501 506 526 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (command.SimpleCommand words: [{(echo)} {(DQ ('Usage: urandom start|stop'))}] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(3)}) ] spids: [529 530 548 16777215] ) ] spids: [173 179 550] ) (C {(Lit_Other ':')}) ] )