启动serval应用程序并将其传送到当前终端

时间:2010-07-16 10:01:41

标签: linux bash shell

如何在一个脚本中启动serval应用程序并将输出传递给当前终端?

对于开发,我需要一个脚本,它启动三个Web服务器(当然是在三个端口上)并将这些服务器的输出传送到当前终端。

困难的是在shell的末尾阻止这些Web服务器。我必须发送信号或更好地发送[Ctrl + C]给所有网络服务器。

我希望你能理解我; - )

2 个答案:

答案 0 :(得分:2)

修改

#!/bin/bash
netstat &
p1=$!
netstat &
p2=$!
netstat &
p3=$!
trap "kill $p1 $p2 $p3" SIGINT
wait $p1 $p2 $p3

脚本在后台启动其他进程并记住其进程ID。然后它等待所有这些终止。同时,在收到SIGINT(即^C)后,它将终止这些进程,然后终止脚本(因为缺少更多的东西)。因此,通过^C您的脚本,您可以终止所有后台服务器进程。

哦,是的...我正在使用netstat作为长时间运行的测试命令。替换你想要的任何东西。

最后,您可以选择使用kill向您的流程发送哪个信号。检查man kill选项;我认为INT(相当于^C)是默认值。

答案 1 :(得分:1)

web_server_1 &
ws1=$!
web_server_2 &
ws2=$!
web_server_3 &
ws3=$!
# Kill some time
kill -s SIGINT $ws1 $ws2 $ws3