How can I resume a stopped job in Linux?

515,488

Solution 1

The command fg is what you want to use. You can also give it a job number if there are more than one stopped jobs.

Solution 2

The general job control commands in Linux are:

  • jobs - list the current jobs
  • fg - resume the job that's next in the queue
  • fg %[number] - resume job [number]
  • bg - Push the next job in the queue into the background
  • bg %[number] - Push the job [number] into the background
  • kill %[number] - Kill the job numbered [number]
  • kill -[signal] %[number] - Send the signal [signal] to job number [number]
  • disown %[number] - disown the process(no more terminal will be owner), so command will be alive even after closing the terminal.

That's pretty much all of them. Note the % infront of the job number in the commands - this is what tells kill you're talking about jobs and not processes.

Solution 3

You can also type %<process_name>; i.e., you hit Ctrl-Z in emacs, then you can type %emacs in the console and bring it back to the foreground.

Solution 4

Just to add to the other answers, bash lets you skip the fg if you specify a job number.

For example, these are equivalent and resume the latest job:

%
%%
fg
fg %

These resume job #4:

%4
fg 4

Solution 5

If you didn't launch it from current terminal, use ps aux | grep <process name> to find the process number (pid), then resume it with:

kill -SIGCONT <pid>

(Despite the name, kill is simply a tool to send a signal to the process, allowing processes to communicate with each other. A "kill signal" is only one of many standard signals.)

Bonus tip: wrap the first character of the process name with [] to prevent the grep command itself appearing in the results. e.g. to find emacs process, use ps aux | grep [e]macs

Share:
515,488

Related videos on Youtube

Bobby
Author by

Bobby

Updated on September 18, 2022

Comments

  • Bobby
    Bobby almost 2 years

    How can I resume a stopped job in Linux? I was using emacs and accidentally hit ctrl-z which blasted me back to the console. I can see it when I type 'jobs'

    [*****]$ jobs
    [1]+  Stopped                 emacs test_queue.cpp
    
    • icc97
      icc97 almost 6 years
      This is actually a fairly normal work flow for Vim, if you want to keep you commands in your bash history, then you hit Ctrl-z type your commands and then resume. Obviously you can run commands without leaving Vim via the :! ed command
  • Sirex
    Sirex about 13 years
    for reference, fg is "foreground". You can also continue the job in the background with "bg".
  • Jonathan Perrodin
    Jonathan Perrodin about 13 years
    I avoid "kill %1" because mistyping it as "kill 1" is really really bad :)
  • FJ de Brienne
    FJ de Brienne about 13 years
    @barrycarter That's very true. I usually do an fg and a Ctrl-C ;)
  • JJ_Australia
    JJ_Australia about 13 years
    @barry: Which is why init in Upstart ignores SIG{TERM,KILL} by default.
  • rr-
    rr- over 9 years
    While this is kind of cool, I still find it easier to type fg than %.
  • Gauthier
    Gauthier about 9 years
    % is awesome, thanks! As a touch-typist, I find fg very irritating (same finger). But then, so is cd.
  • ZAD-Man
    ZAD-Man over 8 years
    Very good to know
  • Wildcard
    Wildcard almost 8 years
    And you can start it in the background with either bg % or just % &.
  • mabraham
    mabraham over 6 years
    This also works if you disown a stopped process
  • Ciprian Tomoiagă
    Ciprian Tomoiagă over 5 years
    can you also get access to its input/output as it happens when you say fg ?
  • thomp45793
    thomp45793 over 5 years
    This is a much more flexible approach than working with job number. Thumbs up.
  • Lafi
    Lafi about 5 years
    in my case when i tried to use fg i see the stopped process appears and disappears quickly and just <fg %> succeeded to restore it.
  • Talespin_Kit
    Talespin_Kit over 4 years
    Why use "%" character. Is it required to be prepended before the job number or Is it a unix convention to specify the int type ?
  • FJ de Brienne
    FJ de Brienne over 4 years
    @Talespin_Kit I have no idea why the commands require the % character. It was a design choice by the first person to implement the commands, either working at AT&T or one of the Berkeley BSD programmers many decades ago.
  • Petr Vepřek
    Petr Vepřek over 3 years
    To the list of commands, you can also add nohup.