(command.CommandList children: [ (C {<echo>} {(SQ <'--- supervise starts, svok works, svup works, svstat works, svc -x works'>)}) (command.Sentence child:(C {<supervise>} {<test.sv>}) terminator:<Id.Op_Amp _>) (command.WhileUntil keyword: <Id.KW_Until until> cond: (condition.Shell commands:[(C {<svok>} {<test.sv>})]) body: (command.DoGroup children:[(C {<sleep>} {<1>})]) ) (command.CommandList children: [ (command.Sentence child:(C {<svup>} {<test.sv>}) terminator:<Id.Op_Semi _>) (C {<echo>} {($ Id.VSub_QMark '$?')}) ] ) (command.CommandList children: [ (command.Sentence child:(C {<svup>} {<-l>} {<test.sv>}) terminator:<Id.Op_Semi _>) (C {<echo>} {($ Id.VSub_QMark '$?')}) ] ) (command.CommandList children: [ (command.Sentence child:(C {<svup>} {<-L>} {<test.sv>}) terminator:<Id.Op_Semi _>) (C {<echo>} {($ Id.VSub_QMark '$?')}) ] ) (command.Pipeline children: [ (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (C {<svstat>} {<test.sv>}) terminator: <Id.Op_Semi _> ) (command.Sentence child: (C {<echo>} {($ Id.VSub_QMark '$?')}) terminator: <Id.Op_Semi _> ) ] ) ) (C {<filter_svstat>}) ] negated: F ) (command.CommandList children: [ (command.Sentence child:(C {<svc>} {<-x>} {<test.sv>}) terminator:<Id.Op_Semi _>) (C {<echo>} {($ Id.VSub_QMark '$?')}) ] ) (C {<wait>}) (command.CommandList children: [ (command.Sentence child:(C {<svstat>} {<test.sv>}) terminator:<Id.Op_Semi _>) (C {<echo>} {($ Id.VSub_QMark '$?')}) ] ) (C {<echo>} {(SQ <'--- svc -ox works'>)}) (command.Sentence child:(C {<supervise>} {<test.sv>}) terminator:<Id.Op_Amp _>) (command.WhileUntil keyword: <Id.KW_Until until> cond: (condition.Shell commands:[(C {<svok>} {<test.sv>})]) body: (command.DoGroup children:[(C {<sleep>} {<1>})]) ) (C {<svc>} {<-ox>} {<test.sv>}) (C {<wait>}) (C {<echo>} {(SQ <'--- svstat and svup work for up services'>)}) (command.Simple words: [{<catexe>} {<'test.sv/run'>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 189 stdin_parts: [ <'#!/bin/sh\n'> <'sleep 1\n'> <'svstat .\n'> <'echo '> ($ Id.VSub_QMark '$?') <'\n'> <'svstat -l .\n'> <'echo '> ($ Id.VSub_QMark '$?') <'\n'> <'svstat -L .\n'> <'echo '> ($ Id.VSub_QMark '$?') <'\n'> <'svup .\n'> <'echo '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'?\n'> <'svup -L .\n'> <'echo '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'?\n'> <'svup -l .\n'> <'echo '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'?\n'> ] ) ) ] do_fork: T ) (command.Sentence child: (command.Pipeline children: [(C {<supervise>} {<test.sv>}) (C {<filter_svstat>})] negated: F ) terminator: <Id.Op_Amp _> ) (command.WhileUntil keyword: <Id.KW_Until until> cond: (condition.Shell commands:[(C {<svok>} {<test.sv>})]) body: (command.DoGroup children:[(C {<sleep>} {<1>})]) ) (C {<svc>} {<-ox>} {<test.sv>}) (C {<wait>}) (C {<echo>} {(SQ <'--- svstat and svup work for logged services'>)}) (command.Simple words: [{<catexe>} {<'test.sv/run'>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 264 stdin_parts: [ <'#!/bin/sh\n'> <'sleep 1\n'> <'svstat .\n'> <'echo '> ($ Id.VSub_QMark '$?') <'\n'> <'svstat -l .\n'> <'echo '> ($ Id.VSub_QMark '$?') <'\n'> <'svstat -L .\n'> <'echo '> ($ Id.VSub_QMark '$?') <'\n'> <'svup .\n'> <'echo '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'?\n'> <'svup -L .\n'> <'echo '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'?\n'> <'svup -l .\n'> <'echo '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'?\n'> ] ) ) ] do_fork: T ) (command.Simple words: [{<catexe>} {<'test.sv/log'>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 275 stdin_parts: [<'#!/bin/sh\n'> <'exec cat\n'>] ) ) ] do_fork: T ) (command.Sentence child: (command.Pipeline children: [(C {<supervise>} {<test.sv>}) (C {<filter_svstat>})] negated: F ) terminator: <Id.Op_Amp _> ) (command.WhileUntil keyword: <Id.KW_Until until> cond: (condition.Shell commands:[(C {<svok>} {<test.sv>})]) body: (command.DoGroup children:[(C {<sleep>} {<1>})]) ) (C {<svc>} {<-Lolox>} {<test.sv>}) (C {<wait>}) (C {<rm>} {<-f>} {<'test.sv/log'>}) (C {<echo>} {(SQ <'--- svc -u works'>)}) (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (C {<echo>} {(SQ <'#!/bin/sh'>)}) terminator: <Id.Op_Semi _> ) (command.Sentence child: (C {<echo>} {<echo>} {<first>}) terminator: <Id.Op_Semi _> ) (C {<echo>} {<mv>} {<run2>} {<run>}) ] ) redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'test.sv/run'>})] ) (C {<chmod>} {<755>} {<'test.sv/run'>}) (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (C {<echo>} {(SQ <'#!/bin/sh'>)}) terminator: <Id.Op_Semi _> ) (command.Sentence child: (C {<echo>} {<echo>} {<second>}) terminator: <Id.Op_Semi _> ) (C {<echo>} {<svc>} {<-x>} {<.>}) ] ) redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'test.sv/run2'>})] ) (C {<chmod>} {<755>} {<'test.sv/run2'>}) (command.Sentence child:(C {<supervise>} {<test.sv>}) terminator:<Id.Op_Amp _>) (command.WhileUntil keyword: <Id.KW_Until until> cond: (condition.Shell commands:[(C {<svok>} {<test.sv>})]) body: (command.DoGroup children:[(C {<sleep>} {<1>})]) ) (C {<svc>} {<-u>} {<test.sv>}) (C {<wait>}) ] )