| width='120' | '''SignaturesSignature'''|{{Func|proc:system|$cmd as xs:string|xs:string}}<br/pre>{{Func|proc:system|( $cmd command as xs:string, $args arguments as xs:string*|xs :string}}<br/>{{Func|proc:system|$cmd as xs:string, $args as xs:string*= (), $options as map(xs*)? :string, xs:string= map { })|as xs:string}}<br/pre>
|- valign="top"
| '''Summary'''
|Executes the specified command in a separate process and returns the result as string. {{Code|$cmdcommand}} is the name of the command, arguments to with the command may be specified via {{Code|$argsarguments}}in a separate process and returns the result as a string. The {{Code|$options}} parameter contains process options:
* {{Code|encoding}}: convert result to the specified encoding. If no encoding is supplied, the system’s default encoding is used.
* {{Code|timeout}}: abort process execution after the specified number of seconds.
* {{Code|proc:system('date')}} returns the current date on a Linux system.
* Analyses the given input and counts the number of lines, words and characters (provided that {{Code|wc}} is available on the system):
<syntaxhighlight pre lang="'xquery"'>
proc:system(
'wc', (),
map { 'input': 'A B' || out:nl() || 'C' }
)
</syntaxhighlightpre>
* The following example returns “Command not found” (unless {{Code|xyz}} is a valid command on the system):
<syntaxhighlight pre lang="'xquery"'>
try {
proc:system('xyz')
'Command not found: ' || $err:description
}
</syntaxhighlightpre>
|}
{| width='100%'
|- valign="top"
| width='120' | '''SignaturesSignature'''|{{Func|proc:execute|$cmd as xs:string|element(result)}}<br/pre>{{Func|proc:execute|( $cmd command as xs:string, $args arguments as xs:string*|element := (result)}}<br/>{{Func|proc:execute|$cmd as xs:string, $args as xs:string*, $options as map(xs*)? :string, xs:string= map { })|as element(result)}}</pre>
|- valign="top"
| '''Summary'''
|Executes the specified command in a separate process and returns the result as element:* {{Code|$cmdcommand}} is the name of the command, and arguments to with the command may be specified via {{Code|$argsarguments}}.in a separate process and returns the result as an element:
* The same {{Code|$options}} are allowed as for {{Function||proc:system}}.
* Instead of the {{Code|proc:error}} error, the error message and process code will be assigned to the returned elements.
* Instead of the {{Code|proc:code....}} error, the error message will be assigned to the returned element (no process code will be returned).
The result has the following structure:
<syntaxhighlight pre lang="xml">
<result>
<output>...output...</output>
<code>...process code...</code>
</result>
</syntaxhighlightpre>
|- valign="top"
|'''Errors'''
{| width='100%'
|- valign="top"
| width='120' | '''SignaturesSignature'''|{{Func|proc:fork|$cmd as xs:string|element(result)}}<br/pre>{{Func|proc:fork|( $cmd command as xs:string, $args arguments as xs:string*|element := (result)}}<br/>{{Func|proc:fork|$cmd as xs:string, $args as xs:string*, $options as map(xs*)? :string, xs:string= map { })|as element(result)}}</pre>
|- valign="top"
| '''Summary'''
|Executes the specified command and ignores the result. a {{Code|$cmdcommand}} is the name of with the command, and arguments to the command may be specified via {{Code|$argsarguments}}in a separate process and ignores the result. The same {{Code|$options}} are allowed as for {{Function||proc:system}} (but with the encoding will be being ignored).
|- valign="top"
|'''Errors'''
{| width='100%'
|- valign="top"
| width='120' | '''SignaturesSignature'''|{{Func|<pre>proc:property|( $name as xs:string|) as xs:string?}}<br/pre>
|- valign="top"
| '''Summary'''
{| width='100%'
|- valign="top"
| width='120' | '''SignaturesSignature'''|{{Func|<pre>proc:property-names||() as xs:string*}}<br/pre>