在不终止先前目标的情况下运行新的ant目标。

4
我有一个ant目标ant server,它运行一个记录到控制台的Java应用程序。我需要运行一个新的ant目标ant server-gui,它也记录到控制台。但是当我运行ant server时,记录会阻止我运行任何新的ant目标。

当我输入^c(这是我知道的唯一的方法),它会终止Java应用程序。我需要两个都运行。哪个键可以让我退出那种“输入”模式并能够运行新的终端命令?

更新:我没有找到直接解决那种模式的方案,但在终端中打开一个新的tab/window就可以了。这样我可以运行任何数量的命令。不过,我仍在寻找一个好的解决方案来退出“输入”模式!

更新2:@abcdef指出另一个帖子,提供了更优雅的解决方案。

1个回答

1

有几种方法可以做到这一点,假设您在*nix上:

1)在ant命令的末尾使用&运行该命令,以告诉*nix在后台运行该命令

2)在命令开头使用nohup运行(https://en.wikipedia.org/wiki/Nohup

3)当进程正在运行时按ctrl-z,然后输入命令bg。这会手动强制该命令在后台运行

希望这可以帮助到您


我实际上是在 Mac 上使用终端。但我认为它几乎可以以相同的方式工作。 - Clay Ellis
这是结果: 1)在结尾添加&仍然启动了日志记录,但我能够将其与第3种方法(ctrl-z)混合使用,以达到一半的效果,但它杀死了第二个应用程序。 2)在开头添加nohup将输出发送到nohup.out(虽然我找不到如何访问此输出文件...),但我仍然必须使用ctrl-z退出“输入/记录器”模式,这会导致_两个_应用程序都被终止。 3)Ctrl-z将我弹出“输入/记录器”模式,但会终止应用程序。所以我已经完成了一半!我只是不能终止应用程序-它们需要保持运行。 - Clay Ellis
你是否使用@中的fork属性,以便生成的Java进程在其自己的JVM中运行?还是使用spawn属性? - abcdef
每次我都在分叉。我找到了一个过度简单的解决方法(但仍然没有答案来退出该模式)。我只需在终端中打开一个新的选项卡/窗口。就这么简单,我想! - Clay Ellis
这个有帮助吗?https://dev59.com/0UvSa4cB1Zd3GeqPf6G- - abcdef
看起来它会完成任务!太棒了!感谢 @abcdef - Clay Ellis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接