1、添加&作用
如执行命令: ./testpro &
终端显示
[1]表示jobID是1,4097表示进程ID是4097
通过ps 命令查看进程
可以看到进程号为4097,进程在后台运行;
1)添加 &与不添加&的区别:
- 添加&运行后,在当前终端可以继续执行其他的命令(如下图所示),也可以使用ctrl +c 命令,都不会对后台的testpro命令造成影响。
- 未添加&运行时,在卡在当前的可执行程序位置,如果此时使用ctrl +c 会终止当前进程,当然也不能再执行其他命令了。
2)即使添加了& ,当关闭当前终端后,进程也会退出运行,此时通过ps 命令查看没有对应的进程。
总结:在添加了&只是解放了当前终端,可以在当前终端执行其他命令;但是关闭了当前终端,进程仍会退出。但是,添加&是个好习惯。
2、nohup作用
既然& 在退出shell后,进程就会挂掉,如果关闭shell,命令在后台能继续运行
nohup用途:不挂断地运行命令。 该命令可以在你退出当前用户/关闭终端之后继续运行相应的进程。因为普通胡勇退出时候,程序可能被杀死
语法:nohup +命令
描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示”and”的符号)到命令的尾部。
总结:nohup搭配& ,就是防止当前系统用户退出时候,该程序被杀死
如果要让进行一直存在,使用 nohup ./testpro &