如何修改读取标准输入的后台Shell脚本以添加nohup?
给后台运行的prog加上nohup的修改方案
我来帮你把nohup整合到现有脚本里,其实改动很简单,直接把nohup放到prog前面就行,修改后的完整脚本如下:
#!/bin/sh { nohup prog <&3 3<&- & } 3<&0
额外说明:
nohup的核心作用是让程序在你退出终端登录后依然能继续运行,默认会把程序的标准输出和标准错误重定向到当前目录的nohup.out文件中。- 如果想自定义输出文件,避免和其他程序的
nohup.out混在一起,可以加上重定向规则,比如把输出写到prog_run.log:#!/bin/sh { nohup prog <&3 3<&- > prog_run.log 2>&1 & } 3<&0 - 原脚本里的文件描述符操作(
3<&0、<&3 3<&-)完全保留,这部分逻辑是确保prog能正确读取到test.txt的输入,同时后台运行时不会占用原有的标准输入文件描述符,避免出现意外的阻塞问题。
内容的提问来源于stack exchange,提问作者mvorisek
相关产品推荐
相关产品推荐

