【问题标题】:i want to continously run my java threads我想连续运行我的java线程
【发布时间】:2009-11-19 10:41:33
【问题描述】:

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

【问题讨论】:

    标签: java linux ant multithreading terminal


    【解决方案1】:

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

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

    如果您从控制台运行某些东西 - 不杀死它并最小化控制台怎么样?如果您是从 Linux(或 Cygwin)启动它,只需在命令行末尾附加 & 即可,该进程将在后台运行。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        查看适用于 Linux 的 screen 命令。

        【讨论】:

          【解决方案4】:

          我猜这是期望的行为。如果您终止您的应用程序,它会被关闭。

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

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

          【讨论】:

            【解决方案5】:

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

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

            【讨论】:

              【解决方案6】:

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

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

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

              【讨论】:

                【解决方案7】:

                我很惊讶没有人提到太有名的Java Service Wrapper。如果您正在开发长期运行的流程(即服务),这是一款出色的软件。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2021-05-23
                  • 2011-09-02
                  • 2016-09-02
                  • 2019-07-28
                  • 1970-01-01
                  • 1970-01-01
                  • 2021-06-21
                  • 2017-06-11
                  相关资源
                  最近更新 更多