前言
linux执行命令的时候是会话级别的,不想因为会话窗口关闭而导致服务也随之关闭,所以有了后台运行的一些命令,nohup + &
1.nohup
执行完这个指令的作用
主要作用:退出终端不会影响程序的运行,会输出一个日志文件(nohup.out)到当前文件目录下,不能执行其他操作,使用ctl+c会中断服务
nohup ./run_funnel.sh
2.&
后面接这个命令可以执行其他操作
3.nohup+&
ctl+c和关闭中断都不会终止服务
4.2>&1
在Linux系统中0 1 2是一个文件描述符
2>&1:将标准错误输出2重定向到标准输出1中,这样2就合并到1中一起输出。
5.实战
nohup java -jar app.jar >outlog.log 2>&1 &
> outlog.txt 表示将终端输出保存到txt中
2>&1 表示将错误输出2定向到标注输出1中一起输出
& 后台挂起
之后使用也就这么用
nohup指令和&的区别:
父进程不一样,nohup的父进程的id是1。所以退出也能运行。&的父进程是执行的终端进程。
参考:nohup使用