定义
nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
语法
nohup Command [ Arg … ] [ & ]
参数说明
Command
:要执行的命令。
Arg
:一些参数,可以指定输出文件。
&
:让命令在后台执行,终端退出后命令仍旧执行。
举例
1
在后台执行 root 目录下的 runoob.sh 脚本:
nohup /root/runoob.sh &
2
在后台执行 root 目录下的 runoob.sh 脚本,并重定向输入到 runoob.log 文件
nohup /root/runoob.sh > runoob.log 2>&1 &
/root/runoob.sh > runoob.log
- 是将/root/runoob.sh的输出重定向到runoob.log文件中,也就是说输出内容不打到屏幕上,而是写入到runoob.log文件中
2>&1 解释
- 将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 runoob.log 文件中。
- 0 – stdin (standard input,标准输入)
- 1 – stdout (standard output,标准输出)
- 2 – stderr (standard error,标准错误输出)
- & 0表示键盘输入
- 1表示屏幕输出
- 2表示错误输出
- 2>1的意思:
2与>结合代表错误重定向,而1代表1个文件,这句话
意思是错误输出重定向到一个文件1中,而不代表标准输出
; - 换成2>&1:&与1就代表标准输出了
这段命令的意思就是,后台执行/root/runoob.sh这个脚本,把标准错误重定向到标准输出
,然后扔到/dev/null中去,即:把所有标准输出和错误输出都扔到垃圾桶里
。
最后一个&,是让该命令在后台执行