我有一个运行其他命令的BASH脚本,我想让它们保持运行以防主脚本停止。我试图用&
运行这些命令,但它没有帮助。我做错了吗?
答案 0 :(得分:6)
这是正常的:shell的作业控制机制在退出时终止其作业。
至少有两种解决方案:
disown
; at
安排工作; nohup
命令。现在,您需要对在后台启动的命令的输出做什么?
disown
,你失去了它; at
,stdout和stderr通过邮件发送给您(但如果您愿意,您可以重定向stdout / stderr); nohup
,您自己定义输出文件。答案 1 :(得分:2)
尝试'nohup'命令运行 COMMAND ,忽略挂断信号
nohup COMMAND &
答案 2 :(得分:2)
在命令之前尝试使用nohup(代表没有挂断):
nohup <your command>
默认情况下,它会将命令的标准输出转发到名为nohup.out的文件中。
答案 3 :(得分:2)
以下是如何执行此操作的示例:
nohup your_command < /dev/null > output.log 2>&1 &