How to list all background pids in bash How to list all background pids in bash bash bash

How to list all background pids in bash


Use ps S. For example:

$ vim &[1] 8263$ ipython &[2] 8264$ ps S PID TTY      STAT   TIME COMMAND 3082 pts/0    Ss     0:00 bash 3137 pts/0    Sl+    0:00 python /usr/bin/ipython 8207 pts/2    Ss     0:00 bash 8263 pts/2    T      0:00 vim 8264 pts/2    Tl     0:00 python /usr/bin/ipython 8284 pts/2    Tl     0:00 python /usr/bin/ipython 8355 pts/2    R+     0:00 ps S

If you want get PIDs use below:

$ ps S | awk '{print  $  1 }' | grep -E '[0-9]'30823137820782638264828483578358835

Also you can use jobs -l But it show background processes only for current session.


But the same does not seem to work for process id?

You can try jobs -l or -p. The -l and -p switches cause the jobs command to also output process IDs.


In bash, as in tcsh, the command you probably want is jobs -l (for Long).

[ghoti@pc ~]$ sleep 300 &[1] 33811[ghoti@pc ~]$ sleep 301 &[2] 33812[ghoti@pc ~]$ sleep 302 &[3] 33813[ghoti@pc ~]$ jobs -l[1]- 33811 Running                 sleep 300 &[2]- 33812 Running                 sleep 301 &[3]+ 33813 Running                 sleep 302 &[ghoti@pc ~]$