我有两个命令行程序,一个客户端应用程序和一个与之通信的服务器应用程序。
客户端依赖后台运行的服务器。我可以通过以下方式启动:
java -jar server.jar & java -jar client.jar
然而,当我终止客户端时,服务器仍然在后台。有没有办法将两者联系起来,以便如果客户端死掉,服务器也死掉?
最佳答案
在后台运行服务器作业并使用 $!
存储进程 ID。然后运行客户端。
客户端退出后,使用存储的 pid 终止服务器,如下所示:
java -jar server.jar &
server=$!
java -jar client.jar
kill $server
更短:不需要存储后台进程的PID,只有一个
java -jar server.jar &
java -jar client.jar
kill $!
关于bash - 链接两个进程 Bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41110163/