Get Processes
Gets a list of running processes based on the specified search criteria.
Common Properties
- Name - The custom name of the node.
- Color - The custom color of the node.
- Delay Before (sec) - Waits in seconds before executing the node.
- Delay After (sec) - Waits in seconds after executing node.
- Continue On Error - Automation will continue regardless of any error. The default value is false.
info
If the ContinueOnError property is set to true, no error will be caught when the project is executed even if the Catch node is used.
Input
- Name Filter (Regex) - Specifies a regular expression used to filter process names.
Output
- Process Ids - The list of process ids of the running processes that match the filter.
- Executable Names - The list of names of the executables that match the filter.
How It Works
The Get Processes node retrieves information about running processes on the system:
- The node queries the operating system for all currently running processes
- For each process, it retrieves the executable path or name
- If a name filter (regex) is provided, it applies the filter to match process names
- Matching processes are collected into two parallel arrays: PIDs and executable names
- Both output arrays are returned with matching indices (same position = same process)
- If no filter is provided, all running processes are returned
Requirements
- Operating System: Works on Windows, Linux, and macOS
- Permissions: Standard user permissions (may not see system processes depending on OS restrictions)
- Output Variables: Both output field names must be configured and non-empty
Error Handling
| Error Code | Description | Solution |
|---|---|---|
Core.Applications.GetProcs.ErrOnCreate | Configuration parsing failed during node creation | Check node configuration in the flow |
Core.Web.HttpRequest.OnMessage | Message parsing error | Verify message format is valid JSON |
Core.Application.GetProcess.ListProcesses | Failed to retrieve process list from OS | Check system permissions or OS restrictions |
Core.Application.GetProcess.ErrOutExecs | Output executable field name is empty | Configure the Executable Names output variable |
Core.Application.GetProcess.ErrOutPids | Output process IDs field name is empty | Configure the Process Ids output variable |
Core.Application.GetProcess.OutputMarshal | Failed to serialize output | Check output variable configuration |
Usage Examples
Example 1: Get All Chrome Processes
// Find all Chrome browser processes
msg.nameFilter = "chrome";
// After node execution:
// msg.pids contains [1234, 5678, 9012]
// msg.execs contains ["/Applications/Google Chrome.app/Contents/MacOS/Google Chrome", ...]
Example 2: Find Processes by Pattern
// Use regex to find all Python processes
msg.processFilter = "python.*";
// After node execution:
// msg.processPids contains array of PIDs for all Python processes
// msg.processNames contains full executable paths
Example 3: Get All Running Processes
// Get all processes by providing no filter
msg.filter = "";
// After node execution:
// msg.allPids contains array of all process IDs
// msg.allNames contains array of all process names/paths
Usage Notes
- The executable name includes the full path when available
- If the full path cannot be retrieved, only the process name is returned
- The filter uses Go regex syntax (similar to PCRE)
- Processes are matched against the executable path, not arguments
- Both output arrays have the same length with corresponding indices
- System processes may not be visible depending on user permissions
- Process snapshots are taken at the moment of execution
- Some processes may start or stop during enumeration
Tips
- Use regex patterns for flexible matching:
.*\.exe$for all .exe files on Windows - Test regex patterns before deploying to production flows
- Combine with Kill Process node to terminate specific processes
- Store results in arrays and use loops to process multiple processes
- Use case-insensitive regex when needed:
(?i)chromematches "Chrome", "CHROME", etc. - Empty filter returns all processes - use with caution on busy systems
- Consider performance: getting all processes can be slow on systems with many processes
Related Nodes
- Kill Process - Terminate processes found by this node using their PIDs
- Start Process - Launch new processes
- Loop - Iterate through the returned process arrays
- Conditional - Filter results based on specific criteria