rsh
で相手先のコマンドを非同期で実行しようとしたとき
rsh
が自ホストに向かうとスティックする問題が発生したのでメモ
どういう状況かというと
デーモンプロセスを起動するためのラッパーシェルとかによく用いられる
#!/bin/sh
/usr/sbin/hogehoge.sh >/dev/null 2>&1 &
exit 0
みたいなシェルを
rsh 127.0.0.1 ”/home/hoge/HogeWrapper.sh -start”
と打つと刺さる、(別環境だと刺さらないかもだけど)
(ループバックは自ホストという意味で)
RHEL5.5
とかだと少なくとも刺さる。
rsh
で起動される可能性のあるラッパーシェル側で
/usr/sbin/hogehoge.sh & 1>&- 2>&-
としてやるといいらしい
>/dev/null 2>&1
でも同じかと思いきや
そもそも出力を待ち受けない?(細かいことはよくわかっていない)
のでrsh
が出力を待って戻ってこないということがなくなる模様
自ホストにrsh
送らなきゃいいだけなんだけど、
テストとかでどうしても自ホストにrsh
飛ばす必要がある時には使えるかもしれない。