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...