nohup 和 &b

nohup 和 &

nohup

nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加& ( 表示“and”的符号)到命令的尾部。
nohup 是 no hang up 的缩写,就是不挂断的意思
nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。
在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。
这个命令常常同时出现,用于程序脚本后台运行,例如下面的指令,将 payment.jar 这个java程序后端运行:
两者区别或者单独使用有什么不一样的地方?
按下 Ctrl + C 键(中断当前运行命令行)
关闭终端(结束当前session)
单独使用nohup
进程退出
进程不受影响
单独使用 &
进程不受影响
进程退出
不用nohup和&:在前台运行(终端不能输入其他命令),关闭当前终端后,进程会停止运行;
只用nohup:在前台运行,关闭终端后,进程会继续在系统里运行;
只用&:在后台运行(终端可以输入其他命令),关闭终端后,脚本会继续在系统里运行,但是stdout(标准输出)和stderr(标准错误)的信息会无法查看;
使用nohup 和 &:在后台运行,关闭运行脚本的终端后,脚本会继续在系统里运行,stdout和stderr里的内容会输出到nohup.out文件中。
 
补充知识点:linux——各类signal信号 ,这里介绍两种常见信号:
  • SIGHUP Hong UP
    • 一般用户关闭或异常退出当前的Linux终端,例如手动关闭 Xshell窗口发出此信号, 通知同一session内的各个作业, 这时它们与控制终端不再关联。
  • SIGINT 程序终止(interrupt)信号,
    • 在用户键入INTR字符(通常是Ctrl+C) 时发出,用于通知前台进程组终止进程。
       
Loading...
目录
文章列表
王小扬博客
产品
Think
Git
软件开发
计算机网络
CI
DB
设计
缓存
Docker
Node
操作系统
Java
大前端
Nestjs
其他
PHP