13.03 - Commands
cleanup
Description: It allows killing a processus, mainly for ecosystem environment management.
EXECUTE cleanup WITH <Res:process> AS $()
Input:
<Res:process>: The name of the resource which references the processus to kill. (Resource of type process).
'local' 'query.shell'
What: Command to execute a command line on the local system.
EXECUTE local WITH {query<Res:query.shell>} USING $(timeout:<n>,streamlength:<n'>) AS {result<Res:Result.shell>}
Input:
query<Res:query.shell>: The name of the resource which references a file which includes one (and one only) command line.(Resource of category query.shell.
<n>: integer that represents a time in milliseconds. It is the time the command execution will wait before crash.
<n'> integer that represents stream length (number of characters). An option "full" allows to have the entire stream. It can be define via an inline instruction : $(streamlength : ...). (streamlength property is available from 1.8.0 version).
Note: if the timeout property is not defined here, we use the timeout property of the resource query.shell (set to 5s by default).
Note 2: Be careful : Local process is not equivalent to a console, it only executes programs. So if you want to use it as a console, you should specified which shell you want to use in your command line. Most of time:
For windows, start your command line with: "cmd.exe /C" (first line)
For linux, start your command with: /bin/sh -c (according to the distribution this may be useless)
Note 3: As local process use the underlying OS, the TA scripts which use it are platform dependent.
Note 4: if the streamlength property is not defined here, we use the streamlength property by default (set to 300 characters).
Output:
result<Res:result.shell>: The name of the resource which contains the shell command result. (Resource of category result.shell)
Example (Linux):
DEFINE $(echo hello world) AS command.file
CONVERT command.file TO query.shell USING $(timeout:15000, streamlength:600) AS commandLine
EXECUTE local WITH commandLine AS result
ASSERT result DOES contain WITH $(hello world) USING $(out)
Note: To execute several command lines, you will need to execute a batch. You must then give either the absolute path of your batch, or its relative path from your project's root in the DEFINE instruction.
Example (Windows):
LOAD command.bat AS command.file
CONVERT command.file TO query.shell AS commandLine
EXECUTE local WITH commandLine USING $(timeout:15000, streamlength:full) AS result
ASSERT result DOES contain WITH $(hello world) USING $(out)
ASSERT result DOES contain WITH $(nice day) USING $(out)
command.bat :
cmd.exe /C
echo hello world
echo have a nice day