nohup命令
访问量:1909

一、简介

nohup命令是用来执行其他命令的,它可以忽略系统的SIGHUP信号。当我们关闭客户端连接时,操作系统会向正在运行的程序发送SIGHUP信号,收到这个信号之后,与我们客户端关联的进程会退出,但nohup命令会忽略这个信号,那么进程就不会退出。

注意事项:以nohup命令运行的程序,输出信息不会显示到终端上面,而是附加到当前目录的 nohup.out 文件中,若当前目录的nohup.out 文件不可写,则输出重定向到$HOME/nohup.out文件中。

二、语法

nohup[选项] [参数]

三、选项

--help:在线帮助;
--version:显示版本信息。

四、使用

1、案例1

假设我们需要在服务端运行一个比较耗时的程序,如下t.sh。

#! /bin/bash

for i in {1..5}
do
  echo ${i}
  sleep 5
done

在程序结束之前,我们不能关闭当前的ssh连接,否则会触发SIGHUP信号,进行导致进程被kill掉。此时,我们可以利用 nohup命令,如下:

nohup ./t.sh &