nohup 是no hang up 的缩写,就是不挂断的意思。 nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。 该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。 在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。
语法:nohup Command [ Arg … ] [ & ]
全称:no hung up
功能:不挂断地运行命令
& 放在启动参数后面表示设置此进程为后台进程
默认情况下,进程是前台进程,这时就把Shell给占据了如果不将 nohup 命令的输出重定向,输出将附加到当前目录的 nohup.out 文件中。
如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。nohup和&结合使用,就可以实现使命令永久地在后台执行的功能
只有nohup,不加&,是关闭标准输入,终端不再能够接收任何输入(标准输入),
重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭shell退出当前session依然继续运行
输出重定向
nohup command > out.file 2>&1 &
command > out.file 是将command的输出重定向到out.file文件,
即输出内容不打印到屏幕上,而是输出到out.file文件中。2>&1 是将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输入到out.file文件中。
0 – stdin (standard input),1 – stdout (standard output),2 – stderr (standard error)
Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。