Process info
Process info* ( processNumber : Integer ) : Object
| Parameter | Type | Description | |
|---|---|---|---|
| processNumber | Integer | → | Process number | 
| Result | Object | ← | Information about the process | 
History
| Release | Changes | 
|---|---|
| 20 R7 | Added | 
Description
The Process info command returns an object providing detailed information about process whose number you pass in processNumber. If you pass an incorrect process number, the command returns a null object.
The returned object contains the following properties:
| Property | Type | Description | 
|---|---|---|
| cpuTime | Real | Running time (seconds) | 
| cpuUsage | Real | Percentage of time devoted to this process (between 0 and 1) | 
| creationDateTime | Text (Date ISO 8601) | Date and time of process creation | 
| ID | Integer | Process unique ID | 
| name | Text | Process name | 
| number | Integer | Process number | 
| preemptive | Boolean | True if run preemptive, false otherwise | 
| sessionID | Text | Session UUID | 
| state | Integer | Current status. Possible values: see below | 
| systemID | Text | ID for the user process, 4D process or spare process | 
| type | Integer | Running process type. Possible values: see below | 
| visible | Boolean | True if visible, false otherwise | 
- Possible values for "state":
| Constant | Value | 
|---|---|
| Does not exist | -100 | 
| Aborted | -1 | 
| Executing | 0 | 
| Delayed | 1 | 
| Waiting for user event | 2 | 
| Waiting for input output | 3 | 
| Waiting for internal flag | 4 | 
| Paused | 5 | 
- Possible values for "type":
| Constant | Value | 
|---|---|
| Apple event manager | -7 | 
| Backup process | -19 | 
| Cache manager | -4 | 
| Client manager process | -31 | 
| Compiler process | -29 | 
| Created from execution dialog | 3 | 
| Created from menu command | 2 | 
| DB4D Cron | -49 | 
| DB4D Flush cache | -46 | 
| DB4D Garbage collector | -47 | 
| DB4D Index builder | -45 | 
| DB4D Listener | -51 | 
| DB4D Mirror | -50 | 
| DB4D Worker pool user | -48 | 
| Design process | -2 | 
| Event manager | -8 | 
| Execute on client process | -14 | 
| Execute on server process | 1 | 
| External task | -9 | 
| HTTP Listener | -56 | 
| HTTP Log flusher | -58 | 
| HTTP Worker pool server | -55 | 
| Indexing process | -5 | 
| Internal 4D server process | -18 | 
| Internal timer process | -25 | 
| Log file process | -20 | 
| Logger process | -57 | 
| Main 4D process | -39 | 
| Main process | -1 | 
| Method editor macro process | -17 | 
| Monitor process | -26 | 
| MSC process | -22 | 
| None | 0 | 
| On exit process | -16 | 
| Other 4D process | -10 | 
| Other internal process | -40 | 
| Other user process | 4 | 
| Restore Process | -21 | 
| Serial Port Manager | -6 | 
| Server interface process | -15 | 
| ServerNet Listener | -43 | 
| ServerNet Session manager | -44 | 
| SOAP process | -33 | 
| SQL Listener | -54 | 
| SQL Method execution process | -24 | 
| SQL Net Session manager | -53 | 
| SQL Worker pool server | -52 | 
| Web process on 4D remote | -12 | 
| Web process with no context | -3 | 
| Web server process | -13 | 
| Web server spare process | -32 | 
| Worker pool in use | -41 | 
| Worker pool spare | -42 | 
| Worker process | 5 | 
note
4D's internal processes have a negative type value and processes generated by the user have a positive value. Worker processes launched by user have type 5.
Here is an example of output object:
{
    "number": 4,
    "name": "Application process",
    "sessionID": "3C81A8D7AFE64C2E9CCFFCDC35DC52F5",
    "ID": 4,
    "visible": true,
    "type": -18,
    "state": 0,
    "creationDateTime": "2024-09-22T12:46:39.787Z",
    "preemptive": false,
    "systemID": "123145476132864",
    "cpuUsage": 0,
    "cpuTime": 0.006769
}
Example
You want to know if the process is preemptive:
var $preemptive : Boolean
$preemptive:=Process info(Current process).preemptive