nohup is a command used to ignore the HUP signal. HUP signal is used to kill a shell command if the parent shell exits. Think that we logged in with ssh and run a command. But the command execution takes a lot of time. We need to log out. In normal sense, if we log out our command execution will end. In this case, we will provide nohup command to prevent command termination even the ssh logout. Nohup is natively provided by Linux distributions, Unix and BSD.
As we can see
nohup command has two types of syntax. In the first one, we will provide the command and arguments. In the second one, we can use just two options named
nohup COMMAND [ARG]... nohup OPTION
Nohup is a very easy command to use in the previous syntax section as wee see. We will just provide command after nohup command we want to execute.
$ nohup top &
We have appended an ampersand & to make run our process in the background and not bind to the current terminal.
Execute with Redirection
We can redirect
nohup command output to the different commands or files. As bash provides
> for redirection, we will use it to write
nohup command a file named
myoutput.txt in this example.
$ nohup bash loop1.sh > myoutput.txt &
Use with Find Command
In this example, we will use
find command which will run even we will close the current shell.
$ nohup find -size +1000k > big_files.txt &
We also use
& which sends the process background and gives the current shell to us. This will give us the message ignoring the input and redirecting stderr to stdout like below.
Situations Of Nohup Usage
We can use nohup command in the following cases.
- Tomcat Server Restart
- Memory Check