(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PATH) op: assign_op.Equal rhs: {(/sbin) (Id.Lit_Other ':') (/usr/sbin) (Id.Lit_Other ':') (/bin) (Id.Lit_Other ':') (/usr/bin) } spids: [35] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DESC) op: assign_op.Equal rhs: {(DQ ('PHP 7.0 FastCGI Process Manager'))} spids: [44] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NAME) op: assign_op.Equal rhs: {(php-fpm7.0)} spids: [49] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CONFFILE) op: assign_op.Equal rhs: {(/etc/php/7.0/fpm/php-fpm.conf)} spids: [52] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DAEMON) op: assign_op.Equal rhs: {(/usr/sbin/) ($ Id.VSub_DollarName '$NAME')} spids: [55] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DAEMON_ARGS) op: assign_op.Equal rhs: {(DQ ('--daemonize --fpm-config ') ($ Id.VSub_DollarName '$CONFFILE'))} spids: [59] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CONF_PIDFILE) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:66) command_list: (command.CommandList children: [ (C {(sed)} {(-n)} {(SQ (Token id:Id.Lit_Chars val:'s/^pid[ =]*//p' span_id:72))} {($ Id.VSub_DollarName '$CONFFILE')} ) ] ) ) } spids: [65] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PIDFILE) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:CONF_PIDFILE span_id:80) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(Id.Lit_Slash /) (run) (Id.Lit_Slash /) (php) (Id.Lit_Slash /) (php7.0-fpm.pid)} ) ) } spids: [78] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TIMEOUT) op: assign_op.Equal rhs: {(30)} spids: [90] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SCRIPTNAME) op: assign_op.Equal rhs: {(/etc/init.d/) ($ Id.VSub_DollarName '$NAME')} spids: [93] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(-x)} {(DQ ($ Id.VSub_DollarName '$DAEMON'))} {(Id.Lit_RBracket ']')}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:113) arg_word: {(0)} ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(-r)} {(/etc/default/) ($ Id.VSub_DollarName '$NAME')} {(Id.Lit_RBracket ']')} ) (C {(.)} {(/etc/default/) ($ Id.VSub_DollarName '$NAME')}) ] ) (C {(.)} {(/lib/init/vars.sh)}) (C {(.)} {(/lib/lsb/init-functions)}) (command.ShFunction name: do_check body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(/usr/lib/php/php7.0-fpm-checkconf)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:177) arg_word: {(1)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:182) arg_word: {(0)} ) ] ) ) (command.ShFunction name: do_start body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [ {(start-stop-daemon)} {(--start)} {(--quiet)} {(--pidfile)} {($ Id.VSub_DollarName '$PIDFILE')} {(--exec)} {($ Id.VSub_DollarName '$DAEMON')} {(--test)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:237) fd: -1 arg_word: {(/dev/null)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:245) arg_word: {(1)} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [ {(start-stop-daemon)} {(--start)} {(--quiet)} {(--pidfile)} {($ Id.VSub_DollarName '$PIDFILE')} {(--exec)} {($ Id.VSub_DollarName '$DAEMON')} {(--)} {($ Id.VSub_DollarName '$DAEMON_ARGS')} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:270) fd: 2 arg_word: {(/dev/null)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:277) arg_word: {(2)} ) ] ) ] ) ) (command.ShFunction name: do_stop body: (command.BraceGroup children: [ (C {(start-stop-daemon)} {(--stop)} {(--quiet)} {(--retry) (Id.Lit_Equals '=') (QUIT/) ($ Id.VSub_DollarName '$TIMEOUT') (/TERM/5/KILL/5)} {(--pidfile)} {($ Id.VSub_DollarName '$PIDFILE')} {(--name)} {($ Id.VSub_DollarName '$NAME')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RETVAL) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_QMark '$?'))} spids: [353] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$RETVAL'))} {(Id.Lit_Equals '=')} {(2)} {(Id.Lit_RBracket ']')} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:373) arg_word: {(2)} ) ] ) (C {(start-stop-daemon)} {(--stop)} {(--quiet)} {(--oknodo)} {(--retry) (Id.Lit_Equals '=') (0/30/TERM/5/KILL/5)} {(--exec)} {($ Id.VSub_DollarName '$DAEMON')} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_QMark '$?'))} {(Id.Lit_Equals '=')} {(2)} {(Id.Lit_RBracket ']')} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:433) arg_word: {(2)} ) ] ) (C {(rm)} {(-f)} {($ Id.VSub_DollarName '$PIDFILE')}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:449) arg_word: {(DQ ($ Id.VSub_DollarName '$RETVAL'))} ) ] ) ) (command.ShFunction name: do_reload body: (command.BraceGroup children: [ (C {(start-stop-daemon)} {(--stop)} {(--signal)} {(USR2)} {(--quiet)} {(--pidfile)} {($ Id.VSub_DollarName '$PIDFILE')} {(--name)} {($ Id.VSub_DollarName '$NAME')} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:513) arg_word: {(0)} ) ] ) ) (command.ShFunction name: do_tmpfiles body: (command.BraceGroup children: [ (C {(local)} {(type)} {(path)} {(mode)} {(user)} {(group)}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(no)} {(Id.Lit_RBracket ']')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:V) op: assign_op.Equal rhs: {(-v)} spids: [556] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TMPFILES) op: assign_op.Equal rhs: {(/usr/lib/tmpfiles.d/php7.0-fpm.conf)} spids: [562] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-r)} {(DQ ($ Id.VSub_DollarName '$TMPFILES'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:578) ) ] action: [ (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:583) cond: [ (command.Sentence child: (C {(read)} {(type)} {(path)} {(mode)} {(user)} {(group)} {(age)} {(argument)}) terminator: (Token id:Id.Op_Semi val:';' span_id:600) ) ] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$type'))} {(Id.Lit_Equals '=')} {(DQ (d))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:620) ) ] action: [ (C {(mkdir)} {($ Id.VSub_DollarName '$V')} {(-p)} {(DQ ($ Id.VSub_DollarName '$path'))} ) (C {(chmod)} {($ Id.VSub_DollarName '$V')} {(DQ ($ Id.VSub_DollarName '$mode'))} {(DQ ($ Id.VSub_DollarName '$path'))} ) (C {(chown)} {($ Id.VSub_DollarName '$V')} { (DQ ($ Id.VSub_DollarName '$user') (':') ($ Id.VSub_DollarName '$group') ) } {(DQ ($ Id.VSub_DollarName '$path'))} ) ] spids: [605 622] ) ] ) ] ) redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:669) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$TMPFILES'))} ) ] ) ] spids: [567 580] ) ] ) ] ) ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(start)}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(init_is_upstart)}) terminator: (Token id:Id.Op_Semi val:';' span_id:697) ) ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:702) arg_word: {(1)} ) ] spids: [694 699] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(no)} {(Id.Lit_RBracket ']')} ) (C {(log_daemon_msg)} {(DQ ('Starting ') ($ Id.VSub_DollarName '$DESC'))} {(DQ ($ Id.VSub_DollarName '$NAME'))} ) ] ) (C {(do_tmpfiles)} {($ Id.VSub_DollarName '$VERBOSE')}) (C {(do_check)} {($ Id.VSub_DollarName '$VERBOSE')}) (command.Case to_match: {(DQ ($ Id.VSub_QMark '$?'))} arms: [ (case_arm pat_list: [{(0)}] action: [ (C {(do_start)}) (command.Case to_match: {(DQ ($ Id.VSub_QMark '$?'))} arms: [ (case_arm pat_list: [{(0)} {(1)}] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(no)} {(Id.Lit_RBracket ']')} ) (C {(log_end_msg)} {(0)}) ] ) ] spids: [772 775 796 -1] ) (case_arm pat_list: [{(2)}] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(no)} {(Id.Lit_RBracket ']')} ) (C {(log_end_msg)} {(1)}) ] ) ] spids: [799 800 821 -1] ) ] ) ] spids: [756 757 827 -1] ) (case_arm pat_list: [{(1)}] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(no)} {(Id.Lit_RBracket ']')} ) (C {(log_end_msg)} {(1)}) ] ) ] spids: [830 831 852 -1] ) ] ) ] spids: [690 691 858 -1] ) (case_arm pat_list: [{(stop)}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(init_is_upstart)}) terminator: (Token id:Id.Op_Semi val:';' span_id:868) ) ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:873) arg_word: {(0)} ) ] spids: [865 870] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(no)} {(Id.Lit_RBracket ']')} ) (C {(log_daemon_msg)} {(DQ ('Stopping ') ($ Id.VSub_DollarName '$DESC'))} {(DQ ($ Id.VSub_DollarName '$NAME'))} ) ] ) (C {(do_stop)}) (command.Case to_match: {(DQ ($ Id.VSub_QMark '$?'))} arms: [ (case_arm pat_list: [{(0)} {(1)}] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(no)} {(Id.Lit_RBracket ']')} ) (C {(log_end_msg)} {(0)}) ] ) ] spids: [920 923 944 -1] ) (case_arm pat_list: [{(2)}] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(no)} {(Id.Lit_RBracket ']')} ) (C {(log_end_msg)} {(1)}) ] ) ] spids: [947 948 969 -1] ) ] ) ] spids: [861 862 975 -1] ) (case_arm pat_list: [{(status)}] action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {(status_of_proc)} {(DQ ($ Id.VSub_DollarName '$DAEMON'))} {(DQ ($ Id.VSub_DollarName '$NAME'))} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:994) arg_word: {(0)} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1000) arg_word: {($ Id.VSub_QMark '$?')} ) ] ) ] spids: [978 979 1005 -1] ) (case_arm pat_list: [{(check)}] action: [(C {(do_check)} {(yes)})] spids: [1008 1009 1017 -1] ) (case_arm pat_list: [{(reload)} {(force-reload)}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(init_is_upstart)}) terminator: (Token id:Id.Op_Semi val:';' span_id:1029) ) ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1034) arg_word: {(1)} ) ] spids: [1026 1031] ) ] ) (C {(log_daemon_msg)} {(DQ ('Reloading ') ($ Id.VSub_DollarName '$DESC'))} {(DQ ($ Id.VSub_DollarName '$NAME'))} ) (C {(do_reload)}) (C {(log_end_msg)} {($ Id.VSub_QMark '$?')}) ] spids: [1020 1023 1062 -1] ) (case_arm pat_list: [{(reopen-logs)}] action: [ (C {(log_daemon_msg)} {(DQ ('Reopening ') ($ Id.VSub_DollarName '$DESC') (' logs'))} {($ Id.VSub_DollarName '$NAME')} ) (command.If arms: [ (if_arm cond: [ (C {(start-stop-daemon)} {(--stop)} {(--signal)} {(USR1)} {(--oknodo)} {(--quiet)} {(--pidfile)} {($ Id.VSub_DollarName '$PIDFILE')} {(--exec)} {($ Id.VSub_DollarName '$DAEMON')} ) ] action: [(C {(log_end_msg)} {(0)})] spids: [1080 1105] ) ] else_action: [(C {(log_end_msg)} {(1)})] ) ] spids: [1065 1066 1124 -1] ) (case_arm pat_list: [{(restart)}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(init_is_upstart)}) terminator: (Token id:Id.Op_Semi val:';' span_id:1134) ) ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1139) arg_word: {(1)} ) ] spids: [1131 1136] ) ] ) (C {(log_daemon_msg)} {(DQ ('Restarting ') ($ Id.VSub_DollarName '$DESC'))} {(DQ ($ Id.VSub_DollarName '$NAME'))} ) (C {(do_stop)}) (command.Case to_match: {(DQ ($ Id.VSub_QMark '$?'))} arms: [ (case_arm pat_list: [{(0)} {(1)}] action: [ (C {(do_start)}) (command.Case to_match: {(DQ ($ Id.VSub_QMark '$?'))} arms: [ (case_arm pat_list: [{(0)}] action: [(C {(log_end_msg)} {(0)})] spids: [1189 1190 1196 -1] ) (case_arm pat_list: [{(1)}] action: [(C {(log_end_msg)} {(1)})] spids: [1199 1200 1206 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [(C {(log_end_msg)} {(1)})] spids: [1212 1213 1219 -1] ) ] ) ] spids: [1171 1174 1228 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [(C {(log_end_msg)} {(1)})] spids: [1231 1232 1244 -1] ) ] ) ] spids: [1127 1128 1250 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.Simple words: [ {(echo)} { (DQ ('Usage: ') ($ Id.VSub_DollarName '$SCRIPTNAME') (' {start|stop|status|restart|reload|force-reload}') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:1265) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1269) arg_word: {(1)} ) ] spids: [1253 1254 1274 -1] ) ] ) (C {(Id.Lit_Other ':')}) ] )