启动和停止多个可执行文件以方便调试

启动和停止多个可执行文件以方便调试

我正在调试一个网络项目,其中涉及3个程序的交互,即一个服务器、两个不同的客户端。但是我发现启动和停止它们进行调试很困难。到目前为止我尝试过的一些方法:

  • 启动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,您可能更喜欢其他方法来存储它并稍后使用它。

相关内容