私は、3つのプログラム、サーバー、および2つの異なるクライアントの対話を含むネットワークプロジェクトをデバッグしています。しかし、デバッグのために起動と停止が難しいことがわかりました。これまでに試したことのいくつかは次のとおりです。
3つの端末を起動します。ランニング
./server
、、、。./client1
./client2
このアプローチの問題は、ウィンドウ間を前後に切り替える必要があることです。1つの端末を起動します。以下をスクリプトに入れます。
./server &;./client1 &;./client2 &
.スクリプトを実行します。このアプローチの問題は、デバッグ後にプロセスを終了するのが難しいことです。 PIDを見つけて入力する必要がありますkill <PID>
。
もっと良い方法がありますか?この状況では、人々は通常どのようにデバッグしますか?
答え1
起動スクリプトとして、次のようなものを置きます。
./server & server_pid=$!
./client1 & client1_pid=$!
./client2 & client2_pid=$!
echo 'kill "$@"' "$server_pid $client1_pid $client2_pid" >.kill.sh
./kill.sh
すべてのプロセスを終了するように呼び出します。キーは、$!
最後のバックグラウンドコマンドのPIDを取得することです。これを保存して後で使用するには、他の方法を好むことができます。