jobs Command in Linux

Introduction

In this hands-on lab, we will delve into the Linux jobs command, a crucial tool for system administration when dealing with background processes. We'll begin by grasping the fundamental usage of the jobs command, covering how to effectively view, suspend, restart, and terminate processes running in the background. Then, we will move on to more advanced techniques for managing these processes using jobs, illustrating with practical examples and relevant use cases. The primary objective of this lab is to provide you, the systemadmin, with a complete understanding of the jobs command and how it can be applied to process management within a Linux operating system, including tasks requiring root privileges.

Understand the jobs Command

In this section, we'll explore the ins and outs of the jobs command in Linux, a vital utility for managing background operations. The jobs command gives you the ability to inspect, pause, restart, and stop background processes.

First, let's kick off a background process using the sleep command:

sleep 60 &

As you can see, we initiate the sleep command in the background by appending the & symbol to the end of the command line.

Now, let's employ the jobs command to inspect the processes running in the background:

jobs

Example output:

[1]+  Running                 sleep 60 &

The output indicates that there is one background process with job ID [1], and it is currently in a running state.

The jobs command can also be used to show any stopped background processes:

jobs -s

This will display any background processes that are currently suspended.

To suspend the sleep process, we can use the kill command combined with the -STOP option:

kill -STOP %1

Here, %1 refers to the job ID of the process that we want to suspend.

To resume the suspended process, we can leverage the kill command along with the -CONT option:

kill -CONT %1

This will wake up and resume the execution of the paused sleep process.

And finally, to terminate a background process, we can call the kill command with the -TERM option:

kill -TERM %1

This will gracefully terminate the sleep process.

Manage Background Processes with jobs

In this section, we will explore how to effectively manage background processes using the capabilities of the jobs command.

Let's start by launching a couple of background processes:

sleep 60 &
sleep 120 &

Now, let's take a look at what's running in the background using the jobs command:

jobs

Example output:

[1] Running                 sleep 60 &
[2] Running                 sleep 120 &

The output confirms that we now have two background processes running, identified by job IDs [1] and [2].

We can also show any stopped background processes:

jobs -s

This command will list any processes that are currently in a stopped state.

To suspend the first background process (job ID [1]), we can use the kill command in combination with the -STOP option:

kill -STOP %1

To bring the suspended process back to life, we can use the kill command with the -CONT option:

kill -CONT %1

This will restart the execution of the suspended sleep process.

To terminate a specific background process, we can use the kill command with the -TERM option, specifying the appropriate job ID:

kill -TERM %2

This command will terminate the second sleep process.

Practical Examples of Using jobs Command

In this final section, we will dive into real-world examples of how the jobs command can be used in practical scenarios.

  1. Monitoring Background Processes

    Let's launch several background processes and utilize the jobs command to monitor their status:

    sleep 60 &
    sleep 120 &
    sleep 180 &
    jobs

    Example output:

    [1] Running                 sleep 60 &
    [2] Running                 sleep 120 &
    [3] Running                 sleep 180 &
  2. Suspending and Resuming Processes

    Let's suspend the second background process:

    kill -STOP %2
    jobs

    Example output:

    [1] Running                 sleep 60 &
    [2]+ Stopped                sleep 120
    [3] Running                 sleep 180 &

    Now, let's resume the suspended process:

    kill -CONT %2
    jobs

    Example output:

    [1] Running                 sleep 60 &
    [2]- Running                sleep 120 &
    [3] Running                 sleep 180 &
  3. Terminating Processes

    Let's terminate the third background process:

    kill -TERM %3
    jobs

    Example output:

    [1] Running                 sleep 60 &
    [2]- Running                sleep 120 &

These examples highlight the power of the jobs command for monitoring, suspending, resuming, and terminating background processes. This is valuable for system admins when managing long-running tasks and background processes within your Linux environment. As a systemadmin, you'll find this invaluable.

Summary

In this lab, we explored the use of the jobs command in Linux to effectively manage background processes. We began by understanding the core functionality of the jobs command, including how to view, suspend, resume, and terminate background processes. We then worked through practical examples of how to use the jobs command, such as launching processes in the background, pausing and restarting them, and ultimately terminating them. In summary, the jobs command is a powerful utility that provides a robust way to control and monitor background processes in a Linux environment, making it a key tool for any systemadmin.

400+ Linux Commands