最初の実行後、スクリプトは正常に動作します。

最初の実行後、スクリプトは正常に動作します。

最初の実行が完了するとすぐに同じスクリプトを実行するのに問題があります。スクリプトは次のとおりです。

#!/bin/bash

./program1 &
./program2 &
./program3
wait

つまり、内部的に3つのC ++プログラムを同時に実行する必要があり、ペアになっているソケット接続を介して互いに通信します。初めて実行すると、すべてがうまく動作します。しかし、最初のスクリプトの後にスクリプトを再実行すると、まったく機能しません。エラーも発生しませんでした。しばらく待ってからやり直してみてください。この動作の根本原因を特定できません。理解するのを手伝っていただければ幸いです。

ベストアンサー1

説明した内容は、C++ プログラムに問題があることを示すようです。複数のインスタンスが実行されているときに通信する正しいプロセスが見つかりません。これは、「最初のスクリプトの後」でスクリプトを再実行した場合にのみ失敗する理由と、少し待ってからやり直すと正しく機能する理由について説明します。

おそらく、最初に再実行しようとしたときにC ++プログラムがまだ実行中で問題が発生し、起動の間に少し待つと、プログラムが終了して期待どおりに動作することになります。

おすすめ記事