aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/monitor/ps.md
blob: d7ddf95d3b03ee282cbe37d76efb8f6c8cf3602c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# ps(1)

```
ps [opt]
  opt:
    --no-header .... do not print column header
    -o <OUT> ....... comma separated list of output columns
    -p <PID> ....... only show pid
    -C <name> ...... only show processes matching name
    -T ............. list threads
    --signames ..... use short signames instead bitmasks
```
> Set `PS_FORMAT` env variable to setup default output columns.

Frequently used output columns
```
pid        process id
ppid       parent process id
pgid       process group id
tid        thread id

comm       name of process
cmd        name of process + args (full)

etime      elapsed time (since process started)
user       user owning process
thcount    thread count of process
nice       nice value (-20 highest priority to 19 lowest)

pcpu       cpu utilization (percent)
pmem       physical resident set (rss) (percent)
rss        physical memory (in kb)
vsz        virtual memory (in kb)

sig        mask of pending signals
sigcatch   mask of caught signals
sigignore  mask of ignored signals
sigmask    mask of blocked signals
```

## Example: Use output for scripting
```sh
# Print the cpu affinity for each thread of process 31084.
for tid in $(ps -o tid --no-header -T -p 31084); do
    taskset -c -p $tid;
done
```

## Example: Watch processes by name
```sh
watch -n1 ps -o pid,pcpu,pmem,rss,vsz,state,user,comm -C fish
```

## Example: Show signal information
```sh
# With signal masks.
ps -o pid,user,sig,sigcatch,sigignore,sigmask,comm -p 66570

# With signal names.
ps --signames -o pid,user,sig,sigcatch,sigignore,sigmask,comm -p 66570
```