0170名無しさん@お腹いっぱい。
2017/09/02(土) 22:48:42.68foo.shのなかでbar.shを読んでいます。
foo.shを出力結果をログファイルにも出したくて
(〜〜〜) 2>&1 | tee -a log.log みたいに
foo.shの中身を全部サブシェル化して、teeに渡したのですが、foo.shが終了しなくなりました。
色々調べたりした結果
bar.shの中で nohup baz &と、デーモン化している部分があるのですが、
このnohupのstdoutにteeが渡されることによりttyと判断されず、nohup.outが使われずに
デーモンプロセスのstdoutがteeに繋がってしまい、
結果teeのstdinがcloseされないためfoo.shも終らないのではないかと予想しました。
予想は立ったのですが解決方法がまったく思い浮かびません。
bar.shは商用資材なので変更不可ですが、
foo.shは複数のshellを連続実行しているだけの試験用のshellなのでいくらでもいじれます。
なんならshellなくなっても問題ないです。