Every command in Linux starts a process at the time of its execution, which automatically gets terminated upon outing the terminal. Suponha que você está executando programas sobre SSH e se a conexão cair, a sessão será terminada, todos os processos executados irão parar, e você pode enfrentar uma enorme crise acidental. Em tais casos, executar comandos em segundo plano pode ser muito útil para o Usuário e é aqui que o comando nohup entra na imagem., nohup (No Hang Up) é um comando em sistemas Linux que executa o processo mesmo depois de sair do shell/terminal.
Usually, every process in Linux systems is sent a SIGHUP (Signal Hang UP) which is responsible for terminating the process after closing/outing the terminal. O comando Nohup impede que o processo receba este sinal ao fechar ou sair do terminal/shell. Uma vez que uma tarefa é iniciada ou executada usando o comando nohup, stdin não estará disponível para o Usuário e nohup.out file é usado como o arquivo padrão para stdout e stderr., Se o resultado do comando nohup for redirecionado para algum outro arquivo, nohup.o ficheiro de saída não é gerado.
sintaxe:
nohup command
trabalhar com o comando nohup
1. A verificação da versão do Nohup:
a versão do comando nohup pode ser verificada usando o seguinte comando.
$ nohup --version
Saída:
2. Para executar um comando no primeiro plano:
executa o comando no primeiro plano e redirecciona o resultado do comando para o nohup.sair do ficheiro se não for mencionado qualquer nome de ficheiro de redireccionamento.,
$ nohup bash geekfile.sh
saída:
para redireccionar a saída para a saída.o arquivo txt:
$ nohup bash geekfile.sh > output.txt
Saída:
3. Para executar um comando em segundo plano (‘&’):
Para executar o comando no fundo, o ‘&’ símbolo é acrescentada no final do comando. Depois de executar, ele não retorna para a linha de comandos shell depois de executar o comando em segundo plano. Ele pode ser trazido de volta para o primeiro plano com o comando fg.,
$ nohup bash geekfile.sh &fg
saída:
Nota: O número entre parêntesis rectos representa o ID da tarefa e o número ao lado dele é o id do processo.4. Para executar vários comandos em segundo plano: o comando
nohup pode ser usado para executar vários comandos em segundo plano.
$ nohup bash -c 'commands'
Exemplo:
$ nohup bash -c 'cal && ls'
Saída:
Aqui, a saída será por padrão armazenado em nohup.as. Para redirecioná-lo, digite:
$ nohup bash -c 'commands' > filename.txt
Exemplo:
$ nohup bash -c 'cal && ls' > output.txt
Saída: