Background running under Linux shell and its foreground conversion

Source: Internet
Author: User

When using bash to start a program, you can use the program to add &, the implementation of the program in the background to run;

Example: Emacs &

But if you forget to enter &; but you do not want to stop the program after restarting;

You can do this:

Press CTRL + Z to pause the foreground work, such as the previously mentioned Emacs;

Then use the jobs command to see how many programs the current bash has started, and you can see that your Emacs is in the stoped state; And its jobid can also be seen, for example, 2.

Then use the command BG 2

This way you can achieve the same effect as Emacs &.

When you have some work, such as UpdateDB, find, and so on, it can take a while for the work to be done in the background and you can do other things with bash.

If you need to return the task to the foreground, only FG 2 is required.

=====================================================================================

a, Shell supports function control, with the following command:
1. command& let the process run in the background
2. Jobs view the process running in the background
3. FG%n Let the background run process N to the foreground
4. BG%n let process n Go backstage;
PS: "N" is the process number that jobs looked up.

B. The following turns: http://blog.chinaunix.net/u/1604/showart_1079559.html

FG, BG, Jobs, &, CTRL + Z are all related to system tasks, although these commands are largely not needed now, but they are also useful
One. & is most often used
This is used at the end of a command, you can put this command in the background to execute
Two. CTRL + Z
You can put a command that is executing in the foreground in the background and pause
Three. Jobs
See how many commands are currently running in the background
Four. Fg
Move commands in the background to the foreground to continue running
If there are multiple commands in the background, you can use FG%jobnumber to bring up the selected command,%jobnumber is the ordinal (not PID) of the command being executed in the background through the jobs command.
Five. Bg
A command that pauses in the background changes to continue execution
If there are multiple commands in the background, you can use BG%jobnumber to bring up the selected command,%jobnumber is the ordinal (not PID) of the command being executed in the background through the jobs command.

# using shell commands under Linux to control task jobs execution

The following commands can be used to manipulate process tasks:
PS ListsystemProcesses that are running in the
Kill sends a signal to one or more processes (often used to kill a process);
Jobs lists the status of the tasks that are started in the current shell environment, displays all active task status information if JOBSID is not specified, and if a task is reported to be terminated (that is, the status of the task is marked as terminated), the shell from the current shellEnvironmentThe known list removes the task's process identity;
BG moves the process to the background (Background);
FG moves the process to the foreground (Foreground);

Move job to Background run
If you often work under X graphics, you may have experienced the following: Running a GUI program with a terminal command, the GUI interface is out, but your terminal is still in place, you can't continue executing other commands in the shell unless the GUIprogramTurn it off.

To enable the terminal to continue accepting commands after the execution of the program, you can move the process to the background and run the program using the following command: #假设要运行xmms

$xmms &

When this opens the XMMS, the terminal prompts are back. Now the XMMS is running in the background, but in case you forget to use "&" When you run the program and don't want to re-execute it, you can use CTRL + Z to suspend the program and then tap the BG command, so the program continues to run in the background.

Concept: Current task

If there are 2 task numbers in the background, [1],[2]; If the first background task executes successfully and the second background task is still in progress, the current task will automatically become a background task for the background task number "[2]". So it can be concluded that the current task is subject to change. WhenUserWhen you enter commands such as FG, BG, and stop, the current task is changed if no quotation marks are added.

See Jobs
Use the jobs or PS command to view the jobs being executed.

The result of the jobs command execution, + represents a current job, the minus table is a job after the current job, the JOBS-L option shows the Pid,jobs status of all tasks can be running, stopped, Terminated, However, if the task is terminated (kill), the shell removes the process identity of the task from the list known to the current shell environment, that is, the jobs command displays the task information that is running in the background or suspended in the current shell environment;

Process hangs

Hang of background process:

Execute through the Stop command in Solaris, view the job number (assuming num) through the jobs command, and then execute the Stop%num;

In Redhat, the Stop command does not exist, and the process can be suspended by executing the command kill-stop PID;

When you want to re-execute the currently suspended task, the status of the suspended job can be changed from stopped to running through BG%num, and the command FG%num can be executed when it needs to be executed in the foreground instead;

Foreground process hangs:

CTRL + Z;

Termination of the process

Termination of the background process:
Method One:
View the job number (assuming num) through the jobs command, and then execute the kill%num

Method Two:
Use the PS command to view the job's process number (PID, assuming PID), and then execute the kill PID

Termination of the foreground process:

CTRL + C

Other effects of Kill
In addition to terminating the process, kill can also send other signals to the process, using kill-l to see the signals that kill supports.

Sigterm is the signal that kill sends without parameters, meaning that the process terminates, but execution depends on whether the process supports it. If the process has not been terminated, you can use the Kill-sigkill PID, which is the kernel to terminate the process and the process cannot listen for this signal.


Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.