Author:赵志乾
Date:2024-08-29
Declaration:All Right Reserved!!!
1. 简介
在不阻塞当前进程的情况下执行shell脚本,可以使用后台运行或者并发执行的方法,这些方法允许脚本在后台运行,而主进程可以继续执行其他任务。
2. 方法说明
2.1 使用&在后台运行脚本
在Shell命令末尾添加&符号可以让该命令在后台执行,这样便可以在同一个终端会话中继续执行其他命令,而无需等待该命令完成。
./your_script.sh &
上述命令会启动your_script.sh脚本,并立即返回命令提示符,允许继续输入其他命令。
2.2 使用nohup与&结合
若希望脚本在后台运行,并且即使退出终端会话后也能继续运行,可以和nohup命令结合,该命令用于在用户注销之后继续运行命令。
nohup ./your_script.sh &
上述命令会在后台启动your_script.sh,并且即使关闭终端,脚本也会继续运行。nohup会将脚本的输出重定向到一个名为nohup.out的文件中,除非你在命令中指定了其他输出文件。
3. nohup与&的区别
- &:表示在后台运行命令,但如果用户注销或关闭终端,由&启动的命令也很会停止运行;
- nohup:使命令忽略挂断信号,即使用户注销或关闭终端,命令仍会继续运行。但nohup本身并不具备后台运行的功能,它通常与&一起使用,以实现即忽略挂断信号又在后台运行的效果;