くだらない質問はここに書き込め!Part 59 (428レス)
くだらない質問はここに書き込め!Part 59 http://mevius.5ch.net/test/read.cgi/unix/1411313356/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
170: 名無しさん@お腹いっぱい。 [] 2017/09/02(土) 22:48:42.68 お知恵をお貸しください foo.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なくなっても問題ないです。 http://mevius.5ch.net/test/read.cgi/unix/1411313356/170
171: 名無しさん@お腹いっぱい。 [sage] 2017/09/03(日) 14:47:16.36 >>170 kill bazしたら? http://mevius.5ch.net/test/read.cgi/unix/1411313356/171
172: 170 [sage] 2017/09/03(日) 16:22:01.58 >>171 bazはfoo.sh終了後もずっと起動していて欲しいデーモンなんです http://mevius.5ch.net/test/read.cgi/unix/1411313356/172
207: 170 [sage] 2017/09/09(土) 16:55:10.67 170です なんとか形になりそうなのでご報告 T=`tty < /dev/ptym/clone` N=`echo $T | cut -c 9-` (… ; sleep 1) 2>&1 > /dev/pty$N & tee -a log.log < /dev/tty$N 手探りで組んだので環境依存とかタイミング系の問題に弱そうです 改良点等あれば教えてください http://mevius.5ch.net/test/read.cgi/unix/1411313356/207
218: 170 [sage] 2017/09/16(土) 11:50:29.00 170です >210だとさらに不具合が出たのでまた改良しました (>210は 2>&1の位置が間違ってるという凡ミスも) ( T=`tty <&3` N=`echo $T | cut -c 9-` stty min 1 time 0 <&3 tee -a log.log <&3 & K=$! (…) >/dev/tty$N 2>&1 3<&- kill -1 $K ) 3</dev/ptym/clone +$?やtrapでのエラー処理やら マスタとスレーブ入れ替えました。 というのも、>210の状態でtsetとtabsが呼ばれるとtabsが固まるという現象が起きました。 (OSのバグじゃないかしらん) >>210 aliasって無効にできるの知りませんでした。 自分のとこの環境ルール的に勝手にaliasが増えたりはしない(し、全部にやるのはめんどくさい)ので このままでいこうと思います。 http://mevius.5ch.net/test/read.cgi/unix/1411313356/218
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.881s*