In Unix/Linux, you generally want to run a program in the background. Many of them use & at the end of the program to run the program automatically. For example, to run MySql in the background:
/Usr/local/MySQL/bin/mysqld_safe-user = MySQL &
However, many of our programs do not support daemon like mysqld. Maybe our program is just a common program. Generally, even if this program is used and ended, if the terminal is closed, the program will also be closed. To be able to run in the background, we need to use the nohup command. For example, if we have a start. Sh command that needs to run in the background and want to run it all the time in the background, we should use nohup:
Nohup/root/start. Sh &
After you press enter in shell, the following message is displayed:
[~] $ Appending output to nohup. Out
The standard output of the original program is automatically redirected to the nohup. Out file in the current directory, which plays the role of log.
But sometimes there is a problem at this step. When the terminal is closed, the process will be automatically closed. Check nohup. Out to see that the service will be automatically closed when the terminal is closed.
After consulting with the red-flag Linux engineer, he could not solve the problem. After executing the command on my terminal, the process he started was still running after the terminal was closed.
During the second demonstration to me, I found that I had a different detail with him when operating the terminal: when the shell prompts that nohup is successful, you also need to press any key on the terminal to return to the shell input command window, and then enter exit in the shell to exit the terminal; however, I click the close program button to close the terminal every time the nohup operation is successful .. Therefore, the session corresponding to the command will be disconnected at this time, and the process corresponding to nohup will be notified and shutdown will be required together.
I did not notice the details, so I recorded them here.
Appendix: nohup command reference
Nohup command
Purpose: run the command without hanging up.
Syntax: nohup Command [Arg... ] [&]
Description: The nohup command runs the command specified by the command parameter and any relevant Arg parameter, ignoring all sighup signals. After logging out, run the nohup command to run the program in the background. To run the nohup command in the background, add the & (symbol indicating "and") to the end of the command.
Whether or not the output of the nohup command is redirected to the terminal, the output will be appended to the nohup. Out file in the current directory. If the nohup. Out file in the current directory cannot be written, the output will be redirected to the $ home/nohup. Out file. If no file can be created or opened for append, the command specified by the Command Parameter cannot be called. If a standard error is a terminal, write the specified command to all outputs of the standard error as the standard output and redirect it to the same file descriptor.
Exit status: This command returns the following export values:
126 you can find but cannot call the command specified by the command parameter.
127 The nohup command has an error or cannot find the command specified by the command parameter.
Otherwise, the exit status of the nohup command is the exit status of the command specified by the command parameter.
Nohup command and output file
Nohup command: If you are running a process and you think the process will not end when you exit the account, you can use the nohup command. This command can continue running the corresponding process after you exit the account/Close the terminal. Nohup means not to suspend (N ohang up ).
The command is generally in the form of nohup command &
Use the nohup command to submit a job
If you use the nohup command to submit a job, all the 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 preceding example, the output is redirected to the myout. File file.
Use jobs to view tasks.
Disable using FG % N.
There are also two commonly used FTP tools ncftpget and ncftpput, which can be used to upload and download files in the background through FTP, so that you can use these commands to upload and download files in the background.