What’s the Unix command-line symbol for “the PID of the last suspended process”

killprocessunix

In an interactive console like irb, sometimes something will go wrong and the console becomes unresponsive. One solution is to suspend the process, then kill it.

To suspend the process, I can press Control+Z. To kill that process, I can run ps -ef | grep 'irb' to list all the processes and show only the ones that contain 'irb', then get the process ID from that list and type kill [insert PID here].

That's a hassle. I know that there's a way to just suspend the process, then type kill [some symbol here], with the symbol representing "the last process that was suspended."

What's the command-line symbol for "the PID of the last suspended process"?

Best Answer

You might be looking for the $! variable (bash manual, section Special Parameters).

However, you don't need the PID – the built-in kill command also accepts job identifiers, such as %2, which are shown when you press Ctrl-Z or type jobs. You can use %, %+ or %% to refer to the latest job. (Other possibilities are in bash manual, section Job Control.)

>>>
[4]+  Stopped                 python
$ kill %4