97 0.0 0.3 11784 1912 ? S 10:41 0:00 /usr/sbin/httpd -k start apache 23098 0.0 0.3 11784 1912 ? S 10:41 0:00 /usr/sbin/httpd -k start
Running applications in the background
Some installed software might not be as user friendly as the Apache web server. Unless you are troubleshooting or otherwise want to see exactly what is going on with an application, you probably want to run it in the background after the process starts. If you don't, the application terminates when the shell is closed. When running server services, it's not desired behavior for the service to stop every time you close the terminal shell or otherwise log out!
If you run an application in the background, it continues to work even if
you close the shell window. You can start an application in the background
by appending an ampersand (
&) at the end of
the execute command. For example, you can open a file with the vi editor
and run it in the background with the
vi /etc/sysconfig/network & command
& opens the /etc/sysconfig/network
file and keeps it in the background. You can use the
nohup utility to allow the process to continue
even after you logout. For example,
nohup vi /etc/sysconfig/network &.
Listing 3 opens a file for editing in the Vim editor and places it in the background.
Listing 3. Running an application in the background
# vi /etc/sysconfig/network &  24940 # jobs + Stopped vi /etc/sysconfig/network
You can type the
jobs command to see all the
applications you have running in the background. Each job running in the
background is assigned a sequential number, starting at 1. The job in
Listing 3 is job number 1.
24940 is the process ID (PID). You can bring an
application to the foreground with the
command and the specific job number. In this example, the process is not
in use by the user, so it displays as
However, the command
fg 1 opens the terminal
back to the active process of editing the file.
Running applications from the desktop
Running graphical user interface (GUI) applications from the desktop in Linux isn't much different from doing so in Windows. Mostly, you need to understand how applications are grouped in menus in your particular desktop environment. Linux has an abundance of desktop applications available for various tasks. Some are native to Linux, while others might be cross-platform applications developed with C# using a common runtime environment, just like .NET Framework applications. You might find that you can even run your favorite Windows application on Linux using a virtual environment such as Wine.
Native Linux applications
It's quite possible you'll find an alternative Linux application for your favorite Windows-based application. Running native Linux applications on the desktop is straightforward. Similar to Windows, you typically find these applications organized in menus, and you simply click and run as you would a Windows application.
For those applications that require root privileges, you are prompted to enter the root password before proceeding. This is similar in concept to the Run as Administrator option in Windows. Otherwise, all applications you run are in the user space of the account you are logged in to.
In Windows, you can create desktop shortcuts. Linux has similar shortcuts called launchers that you can place on the panel or desktop. When you click the launcher, it executes the program.
Figure 1 displays two launchers for the Mozilla Firefox web browser on the GNOME Desktop. One launcher is located on the panel, and the other is on the desktop.
Figure 1. Viewing launchers on the desktop and panel
Many Windows applications are developed using the .NET Framework. Mono is an open source implementation of .NET that runs on many platforms, including Linux. In fact, the Mono website describes it as an implementation of C# and the Common Language Runtime (CLR) that is binary compatible with .NET. The project is currently supported by Xamarin.
On Linux, you execute applications developed with the .NET framework (or
Mono) the same as you do on Windows. However, remember the Linux
umask and default file permiss