淘先锋技术网

首页 1 2 3 4 5 6 7

nohup sh xxx.sh >/dev/null 2>&1 &
进程xxx永久的在后台执行,并将标准输出和标准错误流重定向到linux的空设备

&: 后台运行,当遇到退出当前shell终端时,后台运行的任务就会终止。
因为运行xxx.sh进程的父进程是当前shell终端进程,关闭当前shell终端时,父进程退出,会发送hangup信号给所有子进程,子进程收到hangup以后也会退出。所以要想退出当前shell终端时xxx.sh继续运行,则需要使用nohup忽略hangup信号。

**nohup:**就是no hangup,不要挂断,忽略hup信号。标准输出内容会输出到当前目录的nohup.out日志文件中而不终端显示。用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行。注意没有后台运行的意思,需要和&一起用才是永久的后台执行

nohup sh xxx.sh & 等同于 nohup sh xxx.sh >./nohup.out&

/dev/null:/dev/null是linux的一个空设备,代表空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。

> 代表重定向到哪里
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思
2>&1 表示2的输出重定向等同于1