Linux中的前台(同步)运行 或 后台(异步)运行

✅ 一、前台运行(默认方式)

./myscript.sh

• 脚本会在 前台 运行,直到结束。
• 你必须等它跑完才能进行其他操作(除非用 & 或 Ctrl+Z)。


✅ 先复习两者作用:

关键词作用
&把任务 放到后台,但是它仍然依赖于当前终端,终端关闭则任务终止。
nohup忽略“挂起”信号,任务不受终端关闭影响,可以在后台或前台都使用。

✅ 场景 1:只加 &(后台运行,但受终端控制)

./script.sh &

✅ 效果:

  • 程序在后台运行,你可以继续操作终端。

  • 一旦你关闭终端,任务就会被终止(因为默认会发送 SIGHUP 信号)。

✅ 使用场景:

  • 你只是在一个临时终端里,想让程序在当前 session 后台执行一会儿,稍后会手动查看或等待它完成。

  • 临时查看后台效果,不关心断开终端。


✅ 场景 2:只加 nohup(抗挂起,但仍是前台运行)

nohup ./script.sh

✅ 效果:

  • 程序在前台运行,但你关闭终端时,它不会被杀死。

  • 输出默认会写入 nohup.out 文件。

✅ 使用场景:

  • 不需要手动管理后台,只是希望程序在你断开终端连接(如 SSH)后依然运行。

  • 程序很快执行完,你不想留后台任务。


✅ 场景 3:nohup + &(最常用组合)

nohup ./script.sh > out.log 2>&1 &

✅ 效果:

  • 程序在后台运行,终端关闭后不会退出

  • 输出被重定向到日志文件中,任务独立、稳定。

✅ 使用场景:

  • 部署长期运行的服务、定时任务、训练模型等。

  • 生产环境首选写法,稳定、可控、安全。


🔍 你如果问:“到底加不加 nohup,加不加 &?”

是否长时间运行?是否要关终端?推荐写法
./script.sh
nohup ./script.sh
./script.sh &
是 ✅推荐✅nohup ./script.sh & 或加日志

🧪 总结对比表

写法后台运行断开终端是否继续日志重定向推荐程度
./script.sh &❌(会挂掉)一般
nohup ./script.sh❌(前台)默认写到 nohup.out中等
nohup ./script.sh &✅(可指定)✅ 最推荐
nohup ./script.sh > log &✅ 最推荐

后台程序的输出去哪了?我如何查看?


🧾 一、你是怎么启动后台程序的?对应查看方法如下:

✅ 1. 如果你使用的是:

nohup ./script.sh > out.log 2>&1 &
🟢 查看方式:
cat out.log        # 查看全部输出
tail -f out.log    # 实时查看日志(最常用)
less out.log       # 分页查看(适合大文件)

✅ 2. 如果你使用的是:

nohup ./script.sh &

没有手动重定向输出时,默认输出到当前目录的 nohup.out 文件中

🟢 查看方式:  tail -f nohup.out
cat nohup.out
tail -f nohup.out

✅ 3. 如果你使用的是:

./script.sh > out.log 2>&1 &

你没用 nohup,终端关闭时程序会终止。但如果你只是用 & 放到后台,终端还在,输出写到 out.log

🟢 查看方式:
tail -f out.log

✅ 4. 如果你啥都没加,只是:

./script.sh

输出在终端屏幕上,终端关闭就没了,也不会保存。


🧰 二、如何找到正在运行的后台任务(确认它还在)?

ps aux | grep script.sh      # 查找你的脚本是否还在
jobs -l                      # 查看你当前 shell 的后台任务(前提是没关终端)

🛑 三、终端关闭后,还能找回任务输出吗?

  • 如果你没有用 nohup 或者没有重定向日志,终端一关,输出就丢了。

  • 所以建议你:永远加上日志重定向 > out.log 2>&1 或者使用 tee 命令保存到文件。


✨ 建议模板(推荐使用)

nohup ./script.sh > my.log 2>&1 &

然后用:

tail -f my.log

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值