首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >链接两个进程Bash

链接两个进程Bash
EN

Stack Overflow用户
提问于 2016-12-12 21:45:57
回答 2查看 63关注 0票数 3

我有两个命令行程序,一个客户端应用程序和一个与其对话的服务器应用程序。

客户端依赖于后台运行的服务器。我可以通过以下两种方式启动:

java -jar server.jar & java -jar client.jar

但是,当我杀死客户机时,服务器仍然处于后台。是否有办法将这两者联系起来,以便如果客户端死了,服务器就会死?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-12 21:51:17

在后台运行服务器作业,并使用$!存储进程id。那就去查客户。客户端退出后,使用存储的pid关闭服务器,如下所示:

代码语言:javascript
复制
java  -jar server.jar &
server=$!
java -jar client.jar
kill $server

更短:不需要存储后台进程的PID,只有一个

代码语言:javascript
复制
java  -jar server.jar &
java -jar client.jar
kill $!
票数 2
EN

Stack Overflow用户

发布于 2016-12-12 21:51:33

没有办法链接它们,但您可以显式地管理流程。

代码语言:javascript
复制
java -jar server.jar & server_pid=$!
java -jar client.jar
kill $server_pid

服务器在后台运行,然后客户端在前台运行。此时脚本会阻塞,因此当客户端退出时,脚本将继续执行下一个命令,该命令将杀死服务器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41110163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档