# 20.3.4 Threads and processes

The list of child processes of the target process can be listed with '!pid' command.

    $ radare -d /bin/sh

    [0x13B8C0]> !run
    To cleanly stop the execution, type: "^Z kill -STOP 1527 && fg"

    sh-3.2$ ls
    pid: 1611. new process created!
     - Use !pid for processes, and !th for threads
    CLONE HAS BEEN INVOKED
    debug_dispatch_wait: RET = 0 WS(event)=6 INT3_EVENT=2 INT_EVENT=3 CLONE_EVENT=6
    === cont: tid: 1611 event: 6, signal: 19 (SIGSTOP). stop at 0x4ab95eb3

    [0x4A13B8C0]> !pid
     pid : 1527 0x4ab95eb3 (stopped)
     pid : 1611 0x4ab95eb3 (stopped)
     `- 1611 : /bin/sh (stopped)

The /bin/sh while calling 'ls'. This event has been catched by radare and prompts you again. Now we can choose which process we want to follow. The parent or the child.

    [0x4A13B8C0]> !pid 1527
    Current selected thread id (pid): 1527

The same operations can be done by using the '!th' command for the threads.

In the same way you can hackily 'attach' and 'detach' from to a pid.