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

5,622

Solution 1

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

Solution 2

jobs -p %

It shows PID of last suspended job (after pressing Ctrl+z).

Share:
5,622

Related videos on Youtube

Nathan Long
Author by

Nathan Long

I code mostly in Ruby and Elixir. More about me at nathanmlong.com and Stackoverflow Careers.

Updated on September 18, 2022

Comments

  • Nathan Long
    Nathan Long over 1 year

    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"?

  • Nathan Long
    Nathan Long over 12 years
    I think kill % was what I was looking for. Though I suppose this is actually the last job started rather than the last one suspended, for me this is typically the same one.
  • user1686
    user1686 over 12 years
    @NathanLong: No, % is the last suspended job.
  • Brian Cannard
    Brian Cannard over 6 years