(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: [35] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DESC='> name:DESC) op: assign_op.Equal rhs: {(DQ <'PHP 7.0 FastCGI Process Manager'>)} spids: [44] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NAME='> name:NAME) op: assign_op.Equal rhs: {<php-fpm7.0>} spids: [49] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CONFFILE='> name:CONFFILE) op: assign_op.Equal rhs: {<'/etc/php/7.0/fpm/php-fpm.conf'>} spids: [52] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DAEMON='> name:DAEMON) op: assign_op.Equal rhs: {<'/usr/sbin/'> ($ Id.VSub_DollarName NAME)} spids: [55] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DAEMON_ARGS='> name:DAEMON_ARGS) op: assign_op.Equal rhs: {(DQ <'--daemonize --fpm-config '> ($ Id.VSub_DollarName CONFFILE))} spids: [59] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CONF_PIDFILE='> name:CONF_PIDFILE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<sed>} {<-n>} {(SQ <'s/^pid[ =]*//p'>)} {($ Id.VSub_DollarName CONFFILE)}) right: <Id.Eof_RParen _> ) } spids: [65] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PIDFILE='> name:PIDFILE) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CONF_PIDFILE> var_name: CONF_PIDFILE suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<Id.Lit_Slash '/'> <run> <Id.Lit_Slash '/'> <php> <Id.Lit_Slash '/'> <php7.0-fpm.pid> } ) right: <Id.Right_DollarBrace '}'> ) } spids: [78] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TIMEOUT='> name:TIMEOUT) op: assign_op.Equal rhs: {<30>} spids: [90] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SCRIPTNAME='> name:SCRIPTNAME) op: assign_op.Equal rhs: {<'/etc/init.d/'> ($ Id.VSub_DollarName NAME)} spids: [93] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<-x>} {(DQ ($ Id.VSub_DollarName DAEMON))} {<Id.Lit_RBracket ']'>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> 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: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<'/usr/lib/php/php7.0-fpm-checkconf'>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: do_start body: (BraceGroup left: <Id.Lit_LBrace '{'> 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 op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Return return> 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 op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<2>} ) ] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: do_stop body: (BraceGroup left: <Id.Lit_LBrace '{'> 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 left:<Id.Lit_VarLike 'RETVAL='> name:RETVAL) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_QMark '?'))} spids: [353] ) ] redirects: [] ) (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: <Id.ControlFlow_Return return> 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: <Id.ControlFlow_Return return> arg_word: {<2>} ) ] ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName PIDFILE)}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {(DQ ($ Id.VSub_DollarName RETVAL))} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: do_reload body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<start-stop-daemon>} {<--stop>} {<--signal>} {<USR2>} {<--quiet>} {<--pidfile>} {($ Id.VSub_DollarName PIDFILE)} {<--name>} {($ Id.VSub_DollarName NAME)} ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: do_tmpfiles body: (BraceGroup left: <Id.Lit_LBrace '{'> 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 left:<Id.Lit_VarLike 'V='> name:V) op: assign_op.Equal rhs: {<-v>} spids: [556] ) ] redirects: [] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TMPFILES='> name:TMPFILES) op: assign_op.Equal rhs: {<'/usr/lib/tmpfiles.d/php7.0-fpm.conf'>} spids: [562] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-r>} {(DQ ($ Id.VSub_DollarName TMPFILES))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (C {<read>} {<type>} {<path>} {<mode>} {<user>} {<group>} {<age>} {<argument>} ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName type))} {<Id.Lit_Equals '='>} {(DQ <d>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) 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] ) ] else_action: [] redirects: [] ) ] ) redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(DQ ($ Id.VSub_DollarName TMPFILES))} ) ] ) ] spids: [567 580] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Case to_match: {(DQ ($ Id.VSub_Number 1))} arms: [ (case_arm pat_list: [{<start>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<init_is_upstart>}) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})] spids: [694 699] ) ] else_action: [] redirects: [] ) (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] ) ] redirects: [] ) ] 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] ) ] redirects: [] ) ] spids: [690 691 858 -1] ) (case_arm pat_list: [{<stop>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<init_is_upstart>}) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})] spids: [865 870] ) ] else_action: [] redirects: [] ) (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] ) ] redirects: [] ) ] 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:<Id.ControlFlow_Exit exit> arg_word:{<0>}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> 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: (condition.Shell commands: [ (command.Sentence child: (C {<init_is_upstart>}) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})] spids: [1026 1031] ) ] else_action: [] redirects: [] ) (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: (condition.Shell commands: [ (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>})] redirects: [] ) ] spids: [1065 1066 1124 -1] ) (case_arm pat_list: [{<restart>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<init_is_upstart>}) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})] spids: [1131 1136] ) ] else_action: [] redirects: [] ) (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] ) ] redirects: [] ) ] spids: [1171 1174 1228 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(C {<log_end_msg>} {<1>})] spids: [1231 1232 1244 -1] ) ] redirects: [] ) ] 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 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:{<1>}) ] spids: [1253 1254 1274 -1] ) ] redirects: [] ) (C {<Id.Lit_Colon ':'>}) ] )