4.6 KiB
Process Module
The Process module provides functions for running commands and managing processes on your system.
Command Results
Command Output Information
When you run a command, you get back information about what happened:
stdout
: The normal output of the commandstderr
: Any error messages from the commandsuccess
: Whether the command worked (true) or failed (false)code
: The exit code (0 usually means success)
Process Information
When you get information about a running process, you can see:
pid
: The process ID numbername
: The name of the processmemory
: How much memory the process is usingcpu
: How much CPU the process is using
Run Functions
run(command)
Runs a command or multiline script with arguments.
Parameters:
command
(string): The command to run
Returns: The result of the command, including output and whether it succeeded.
Example:
// Run a simple command
let result = run("ls -la");
// Check if the command was successful
if result.success {
print(`Command output: ${result.stdout}`);
} else {
print(`Command failed with error: ${result.stderr}`);
}
run_silent(command)
Runs a command or multiline script with arguments silently (without displaying output).
Parameters:
command
(string): The command to run
Returns: The result of the command, without displaying the output.
Example:
// Run a command silently
let result = run_silent("git pull");
// Check the exit code
if result.code == 0 {
print("Git pull successful");
} else {
print(`Git pull failed with code ${result.code}`);
}
new_run_options()
Creates a new map with default run options.
Returns: A map with the following default options:
die
(boolean):true
- Whether to throw an error if the command failssilent
(boolean):false
- Whether to suppress command outputasync_exec
(boolean):false
- Whether to run the command asynchronouslylog
(boolean):false
- Whether to log the command execution
Example:
// Create run options
let options = new_run_options();
run_with_options(command, options)
Runs a command with options specified in a map.
Parameters:
command
(string): The command to runoptions
(map): A map of options created withnew_run_options()
Returns: The result of the command with your custom settings applied.
Example:
// Create and customize run options
let options = new_run_options();
options.die = false; // Don't throw an error if the command fails
options.silent = true; // Suppress command output
options.async_exec = false; // Run synchronously
options.log = true; // Log the command execution
// Run a command with options
let result = run_with_options("npm install", options);
Process Management Functions
which(cmd)
Checks if a command exists in the PATH.
Parameters:
cmd
(string): The command to check
Returns: The full path to the command if found, or nothing if not found.
Example:
// Check if a command exists
let git_path = which("git");
if git_path != () {
print(`Git is installed at: ${git_path}`);
} else {
print("Git is not installed");
}
kill(pattern)
Kills processes matching a pattern.
Parameters:
pattern
(string): The pattern to match process names against
Returns: A message confirming the processes were killed.
Example:
// Kill all processes with "node" in their name
kill("node");
process_list(pattern)
Lists processes matching a pattern (or all processes if the pattern is empty).
Parameters:
pattern
(string): The pattern to match process names against (can be empty to list all processes)
Returns: A list of processes matching your search.
Example:
// List all processes
let all_processes = process_list("");
// List processes containing "node" in their name
let node_processes = process_list("node");
// Display process information
for process in node_processes {
print(`PID: ${process.pid}, Name: ${process.name}, Memory: ${process.memory}, CPU: ${process.cpu}`);
}
process_get(pattern)
Gets a single process matching the pattern. Throws an error if zero or more than one process matches.
Parameters:
pattern
(string): The pattern to match process names against
Returns: Information about the matching process. This will only work if exactly one process matches.
Example:
// Try to get a specific process
try {
let process = process_get("my_app");
print(`Found process: PID=${process.pid}, Name=${process.name}`);
} catch(err) {
print(`Error: ${err}`);
}