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
See how many commands are currently running in the background
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.
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 ListProcesses that are running in the system;
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 shellThe process identity of the task is removed from the environment-known list;
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 GUIProgram 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
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, ,; 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 "". So it can be concluded that the current task is subject to change. WhenWhen the user enters commands such as FG, BG, and stop, the current task is changed if no quotation marks are added.
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;
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:
View the job number (assuming num) through the jobs command, and then execute the kill%num
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.===================unix/linux generally want to let a program run in the background, many use & at the end of the program to let the program run automatically. For example we want to run MySQL in the background:/usr/local/mysql/bin/mysqld_safe--user=mysql & But many of our programs do not have the same daemon as mysqld, and maybe our program is just a normal program. In general, if the terminal is closed, the program will be closed even if the & end is used. In order to be able to run in the background, we need to use the Nohup command, such as we have a start.sh need to run in the background, and want to be able to run in the background, then use nohup:nohup/root/start.sh & in the shell to enter after the prompt: [ The standard output of ~]$ appending output to Nohup.out is automatically redirected to the Nohup.out file in the current directory, which plays the role of log. But sometimes in this step there is a problem, when the terminal is closed, the process will be automatically closed, see Nohup.out can be seen in the shutdown Terminal Instant service automatically shut down. After consulting the Red Flag Linux engineer, he also can not be solved, after executing on my terminal, the process that he starts is still running after shutting down the terminal. The second time I showed it, I found out that I was in a different detail than when he operated the terminal: he was prompted by the Shell to return to the Shell Input Command window by pressing the keyboard key on the terminal, and then exit the terminal by entering exit in the shell Nohup , and I'm the one that closes the terminal after the Nohup executes successfully after the Close Program button. So this time will be broken the corresponding session of the command, resulting in nohup corresponding process is notified need to shutdown together. This detail has not been noticed by me, so I recorded it here.
Attached: nohup Command Reference nohup command purpose: To run the command without hanging off. Syntax: Nohup Command [Arg ...] [&] Description: The nohup command runs commands specified by the command parameter and any related ARG parameters, ignoring all hang-up (SIGHUP) signals. Use the Nohup command to run a program in the background after logging off. To run the Nohup command in the background, add & (the symbol representing "and") to the end of the command. The output is appended to the Nohup.out file in the current directory, regardless of whether the output of the Nohup command is redirected to the terminal. If the nohup.out file for the current directory is not writable, the output is redirected to the $HOME/nohup.out file. If no file can be created or opened for appending, then the command specified by the commands parameter is not callable. If the standard error is a terminal, then all output of the specified command to the standard error is redirected to the same file descriptor as the standard output. Exit Status: This command returns the following exit values: 126 You can find but cannot invoke the command specified by the command parameter. The 127 nohup command has an error or cannot find the command specified by the commands parameter. Otherwise, the exit status of the Nohup command is the command parameter that specifies the exit state of the commands. Nohup command and its output file Nohup command: If you are running a process and you feel that the process will not end when you exit the account, you can use the Nohup command. This command can continue to run the process after you exit the account/close the terminal. Nohup is the meaning of not hanging (n ohang up). The general form of the command is: Nohup Command & Submit a job using nohup commands if the job is submitted with the Nohup command, all output of the job is redirected to a file named Nohup.out by default, unless the output file is specified separately: Nohup command > Myout.file 2>&1 & In the example above, the output is redirected to the Myout.file file. Use jobs to view tasks. Use FG%n to close. There are also two commonly used FTP tools Ncftpget and Ncftpput, can be implemented in the background FTP upload and download, so you can use these commands in the background to upload and download files. Simple and useful nohup command in Unix/linux, normal process with & symbols in the background to run,If the program's console logout is started, the process terminates. To implement the daemon, one way is to program according to the rules of the daemon (this site an article introduced), more trouble; Another method is to still use the normal method of programming, and then start the program with the NOHUP command: nohup< program name >& Console logout, the process continues to run, Play the role of the daemon (although it is not a strictly guarded process). Using the Nohup command, the original program's standard output is automatically redirected to the current directory of the Nohup.out file, played the role of log, the implementation of the full daemon function. Ygwu @ April 18, 2005 Morning 10:03 For example: How do I start the WebLogic service remotely? Remotely control the server with Telnet, start the WebLogic service remotely, and then shut down the Telnet,weblogic service when it starts, because a process started with Telnet shuts down as the Telnet process shuts down. So we can use some UNIX commands to do it without shutting down. Use the following command: Nohup startweblogic.sh& If you want to monitor the standard output you can use: Tail-f nohup.out when you run a program in the background, you can use the Jobs command to view the status of the background job. To use the FG command with parameters to switch background jobs of different numbers to run on the foreground when there are multiple daemons. When the user initiates a process, the process is run in the foreground, using the standard input and output associated with the corresponding control terminal for input and output. Even if the input and output of the process is redirected and the process is placed in the background, the process is still related to the current terminal device. Because of this, at the end of the current logon session, the control terminal device will be disconnected from the login process, then the system to all the process associated with the terminal to send Sighup signal, notify the process line has been suspended, if the program does not take over the processing of this signal, then the default reaction is the process end. Therefore, the normal program does not really leave the login session and run the process, in order to make the system log on after the normal execution, only use the command nohup to start the corresponding program. Using the command nohup can of course start such a program, but the Nohup startup program exits when the process finishes executing, while some common service processes typically run permanently in the background without outputting results to the screen. In Unix, these persistent daemon processes are called daemons (daemon). Daemons usually start automatically from the start of the system and stop when the system shuts down. In the daemon, the most important one is the Super Daemon inetd, which takes over most of the networkService, but instead of handling each service itself, start a different service program to deal with the client based on the connection request. INETD supports the type of network service defined in its settings file/etc/inet.conf. Each line in the inet.conf file corresponds to a port address, and when inetd accepts a connection request to the port, the appropriate process is initiated for processing. The advantage of using inetd is that the system does not have to start a lot of daemons, thus saving system resources, however, using inetd boot daemon will be slow to respond, not suitable for the intensive access service process This article from *https://www.cnblogs.com/ Kex1n/p/7211008.html
Linux===linux background run and close, view background tasks (GO)