一、nohup命令功能简介bash
[root@vms002 opt]# whatis nohup nohup (1) - run a command immune to hangups, with output to a non-tty #运行一个不受hangups影响的命令,输出到一个非tty nohup (1p) - invoke a utility immune to hangups #调用不受hangups影响的实用程序
nohup命令能够将以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端。不管是否将nohup命令的输出重定向到终端,输出都将附加到当前目录下的nohup.out文件中。若是当前目录的nohup.out文件不可写,输出重定向到$HOME/nohup.out文件中。若是没有文件能建立或打开以用于追加,那么command参数指定的命令不可调用。若是标准错误是一个终端,那么把指定的命令写给标准错误的全部输出做为标准输出重定向到相同的文件描述符。
ssh
nohup是永久执行的意思,而 & 是指在后台运行。就是指,用nohup运行的命令或程序能够永久的执行下去,和用户终端没有关系,例如咱们断开ssh链接都不会影响他的运行。
ide
注意:当咱们用 & 运行的程序是守护进程时,咱们断开终端后这个守护进程会继续在后台运行。若是这个进程不是守护进程时,当咱们断开终端后,这个进程也跟着断开中止运行了。
spa
二、nohup语法orm
nohup [命令] nohup [选项]
三、nohup选项进程
选项 | 说明 |
--help | 显示此帮助信息并退出 |
--version | 显示版本信息并退出 |
四、实例it
使用nohup命令时,若是指定了输出文件,那么输出信息则输出到指定的文件中。若是没有指定输出文件,则输出信息会输出到当前目录中的nohup.out文件中。
io
1)使用nohup命令查看当前目录下的文件,并把输出结果重定向到ls.log文件中。
table
[root@vms002 opt]# ls a_ aa.txt a^x.txt rh rh134 tmp [root@vms002 opt]# nohup ls >> ls.log nohup: 忽略输入重定向错误到标准输出端 [root@vms002 opt]# ls a_ aa.txt a^x.txt ls.log rh rh134 tmp [root@vms002 opt]# cat ls.log a_ aa.txt a^x.txt ls.log rh rh134 tmp
2)使用nohup命令查看当前目录下的文件,不指定输出文件,查看输出结果是否在当前目录下的nohu.out文件中。class
[root@vms002 opt]# ls a_ aa.txt a^x.txt ls.log rh rh134 tmp [root@vms002 opt]# nohup ls nohup: 忽略输入并把输出追加到"nohup.out" [root@vms002 opt]# ls a_ aa.txt a^x.txt ls.log nohup.out rh rh134 tmp [root@vms002 opt]# cat nohup.out a_ aa.txt a^x.txt ls.log nohup.out rh rh134 tmp
五、总结
1)nohup命令是永久执行,忽略挂起信号。&是指在后台运行。
2)用 & 后台运行程序时,若是是守护进程,断开终端则程序继续运行,若是不是守护进程,断开终端则程序也会被断开中止运行。
3)使用nohup命令时,若是指定了输出文件,输出信息则会附加到输出文件中,若是没有指定输出文件,则输出信息会附加到当前目录下的nohup.out文件中,若是当前目录的nohup.out文件不可写,输出重定向到$HOME/nohup.out文件中。