背景子壳中SIGTERM的结束尾



在我的脚本中,我启动了多个后台进程,其中一个是

(
tail -qF -n 0 logs/nginx/*.log
) &
processes[logs]=$!
for process in "${!processes[@]}"; do
wait "${processes[$process]}"
done

当发送SIGTERM信号时,所有进程结束,只有tail还在运行。经过一些测试,我想出了将tail发送到后台的解决方案,并且它有效。

(
tail -qF -n 0 logs/nginx/*.log &
) &
processes[logs]=$!
for process in "${!processes[@]}"; do
wait "${processes[$process]}"
done

有人能向我解释一下,当我在子shell中发送tail到后台时发生了什么,所以当SIGTERM到达时它结束了?

我的尾巴在我提供的例子中没有被杀死,它只被发送到后台,允许脚本退出。

我已经将tail附加到我的服务器上,所以在我的服务器死亡后,tail也会死亡。现在它就像我想要的那样了

tail -qF -n 0 --pid=${process_list[server]} logs/nginx/*.log

相关内容

  • 没有找到相关文章

最新更新