我正在实施提出的日志解决方案这里,我不知道以下几行是否必需的每当我退出父 Bash 进程/脚本时:
if [ -n "$teepid" ]; then
exec 1>&- 2>&- # Close file descriptors to signal EOF to the `tee`
# command in the background process
wait $teepid # Wait for background process to exit
fi
log()
这些行可以在函数和脚本的末尾找到。我知道它们是必需的在log()
功能上,但是它们必需的在剧本的结尾?
换句话说:如果exit
我的父进程中的每个命令之前没有写上述代码,我的后台作业是否可以顺利退出?
答案1
PID 标识的进程$teepid
使用 进行后台运行&
。如果您在未等待该 PID 完成的情况下退出,唯一会发生的坏事就是在 shell 中使用时发生的情况&
。稍后您会按下 [Enter] 键,并在显示下一个提示行之前收到一条[1] {pid} exited
(或类似内容,现在记不清了)消息。