我想继续运行我的java线程

时间:2009-11-19 10:41:34

标签: java linux ant multithreading terminal

我正在运行我使用线程的java应用程序... 我在终端上使用ant命令运行这个应用程序.. 但当我关闭我的终端或按ctrl + c,然后正在运行的java程序停止... 请帮我解决这个问题,因为我想继续运行这个程序......

7 个答案:

答案 0 :(得分:1)

如果您终止Java进程,Java将不再运行。如果您希望线程持续运行,则Java程序必须保持活动状态。

用ant调用这样的程序通常不是这样做的。在类Unix系统上,您通常会通过/etc/init.d启动脚本在后台运行这样的程序。在Windows中,相当于将程序作为服务启动,但我不确定让Java以这种方式运行所涉及的错综复杂。

如果你正在从一个concole运行一些东西 - 如何不杀死它并最小化控制台?如果你是从Linux(或Cygwin)启动它,只需在命令行末尾添加一个&,该过程将在后台运行。

告诉我们更多有关您的环境的信息,以及您准备采取的妥协措施(例如,在任务栏中设置最小化的控制台窗口),我们可以为您提供更多帮助。目前,我能给出的唯一明确答案是“是的 - Ctrl-C会杀死你的程序(如预期的那样)。如果你想让它继续运行,不要告诉它停止运行。” : - )

答案 1 :(得分:1)

您可以在linuxwindows中将您的应用程序作为服务运行。

答案 2 :(得分:1)

查看Linux的screen命令。

答案 3 :(得分:0)

在后台运行ant命令并将其输出重定向到文件: ant &> my.log &

注意:这个问题似乎与线程无关(除非我误解了它)。

答案 4 :(得分:0)

听起来你想要守护你的蚂蚁任务。我建议使用以下命令:

nohup ant &> ant.log < /dev/null &

nohup将允许程序在关闭终端后继续运行。

答案 5 :(得分:0)

我想这是理想的行为。如果您终止申请,它将被关闭。

如果您希望在后台运行该应用程序,您应该考虑将其作为Windows服务或守护程序。

如果您希望继续在* nix上将其作为应用程序运行,可以考虑使用GNU Screen

答案 6 :(得分:0)

我很惊讶没有人提到过于着名的Java Service Wrapper。如果您正在开发长期运行的流程(a.k.a服务),这是一个很好的软件。