Skip to main content
eLearner.app
Module 5 · Lesson 2 of 211/11 in the course~15 min
Module lessons (2/2)

Job control and logs (bg, fg, tail)

When using the terminal, you might want to run a long-term command without locking up the shell. Linux supports Job Control, which allows you to send processes to the background and switch them back to the foreground. In addition, you will learn how to monitor logs to check what is happening on the system.


Running Commands in the Background: & and jobs

To start a command directly in the background (releasing control of the terminal immediately), append the & (ampersand) character to the end of the command:

Bash
sleep 1000 &

This command returns a job number (e.g., [1]) and a PID.

Listing Jobs: jobs

The jobs command lists the active processes associated with the current shell session that are running in the background or suspended:

Bash
jobs

Moving Processes: fg, bg, and Ctrl+Z

If a command is running in the foreground and blocking the terminal, you can:

  1. Press Ctrl + Z to suspend (pause) the current process.
  2. Use the bg (background) command to restart the suspended process in the background:
    Bash
    bg %1   # Restarts job 1 in the background
  3. Use the fg (foreground) command to bring a background process back to the foreground:
    Bash
    fg %1   # Brings job 1 to the foreground

Monitoring Logs: tail and journalctl

System and application logs record important events. Often, you need to observe these files in real-time as they are being written.

Viewing the End of a File: tail

The tail command displays the last lines of a file (default is 10 lines):

Bash
tail /var/log/syslog
tail -n 20 /var/log/syslog    # Shows the last 20 lines

To monitor a file in real-time (for example, to see log messages generated while testing an application), use the -f (follow) option:

Bash
tail -f logs/server.log

Try it yourself

Exercise 1: List active jobs

Exercise#linux.m5.l2.e1
Attempts: 0Loading…

Display the list of current jobs (background or suspended processes) in the terminal session using the 'jobs' command.

Loading editor…
Show hint

Use simply the 'jobs' command.

Solution available after 3 attempts

Exercise 2: Bring a job to the foreground

Exercise#linux.m5.l2.e2
Attempts: 0Loading…

Bring the currently active background job to the foreground using the 'fg' command.

Loading editor…
Show hint

Use the 'fg' command to bring the job back to the foreground.

Solution available after 3 attempts

Exercise 3: Check the last lines of a log

Exercise#linux.m5.l2.e3
Attempts: 0Loading…

Display the last lines of the log file located at 'logs/server.log' using the 'tail' command.

Loading editor…
Show hint

Use 'tail' followed by the file path: 'logs/server.log'.

Solution available after 3 attempts