• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:rshを使うスクリプトをバックグラウンド実行)

rshを使うスクリプトをバックグラウンド実行

このQ&Aのポイント
  • Linux+Perlでのお話です。
  • スクリプトAをフォアグラウンドで実行するとうまく流れるのですが、バックグラウンド実行すると、rshコマンドを実行した直後でjobが止まってしまいます。
  • フォアグラウンドで実行すればうまくいくのに、バックグラウンドで実行すると止まってしまうのが理解出来ません。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

n オプションをけると上手くいくかも http://linuxjm.sourceforge.jp/html/netkit/man1/rsh.1.html csh(1) を使用している場合に、 rsh の入力を端末にリダイレクトしたままバックグラウンドで動作させると、リモートコマンドから入力がない場合でも rsh は動作をブロックする。入力が必要ない場合は、 -n オプションを用いて rsh の入力を /dev/null にリダイレクトするべきである。

sexy-55
質問者

お礼

ご回答ありがとうございます。 まさに、ご指摘頂いたとおりの内容だったようで、rshに-nオプションを加えることで、途中でスクリプトが停止することなくバックグラウンドで実行することが出来ました。 やはり「rshやsshは標準入力が期待されてるとバックグラウンド実行が出来ない」ということだったのですね… rshで実行させたスクリプトの結果がファイルに書き出されていたので、てっきり問題ないものだと思い込んでました。 非常に助かりました。ありがとうございました。 今後とも宜しくお願い致します。

その他の回答 (1)

回答No.1

rsh先に ~/.bashrcや~/.cshrcなどのシェル起動時に自動実行されるファイルがあって、 その中に sttyコマンドやxmodemapなどの端末依存するコマンドが書いてあると、 そこで処理待ちになってしまった経験があります。 私は、.chsrcで if ( $?term ) then stty ~ endif として回避しました。 (.bashrcはまた別の書き方)

sexy-55
質問者

お礼

ご回答ありがとうございます。 今回は、rshに-nオプションをつけることで、途中で止まることなくバックグラウンドで実行されました。 今回はご指摘頂いた事象に該当するものではなかったみたいですが、今後の参考にさせて頂きます。 今後とも宜しくお願い致します。

関連するQ&A