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 typejobs
. You can use%
,%+
or%%
to refer to the latest job. (Other possibilities are in bash manual, section Job Control.)