【问题标题】:How to run Java application on startup of Ubuntu Linux如何在 Ubuntu Linux 启动时运行 Java 应用程序
【发布时间】:2014-05-07 20:53:36
【问题描述】:

我有一个需求,我需要开发读取 TCP/IP 套接字的应用程序。我成功地将程序制作为没有 GUI 的 Java 程序,这意味着程序一旦运行,它就会开始监听 Socket 并在 Netbeans IDE 的帮助下获得响应。现在根据我的要求,我必须在 Linux 系统启动后立即开始执行该程序。

其实我是Java和Linux平台的新手,所以没有什么疑问..

  1. 我的 Socket 程序没有 GUI 是否可以按照我的要求运行。
  2. 我如何编写脚本以在 Linux 启动时运行 jar,我知道了。 init.d 就是为此而生的。

【问题讨论】:

  • /etc/rc.local 是放代码在系统启动时运行的懒地方。
  • @Paul - 很高兴你能提供替代方案

标签: java linux sockets ubuntu init


【解决方案1】:

理想情况下,您应该为您的 java 应用程序创建一个服务包装器,然后让该服务在启动示例 here 时运行。

使用
sudo update-rc.d mytestserv defaults 在 Ubuntu 上启动时运行您的服务包装器

【讨论】:

  • 如果我不更改程序中的 PID_PATH_NAME=/tmp/MyService-pid 怎么办。如果我让它保持原样。会好吗
  • 一个更愚蠢的问题。对不起,先生,我对 Linux 非常陌生 ..粘贴脚本并执行下一个命令后,如何摆脱这个命令 sudo vi /etc/init.d/mytestserv 即sudo chmod +x /etc/init.d/mytestserv
  • 你的意思是退出vi编辑器!!???按 "ESC + :wq + "INTRO" 退出。如果您要重启机器,请尝试 "sudo reboot now" 或 "sudo reboot"
  • 明白了,先生..如果我的服务处于启动模式并且一段时间后我重新启动了我的 Linux 系统,那么我的服务将自动启动。我说得对吗?
  • 是的,如果可以,请重新启动计算机以仔细检查。祝你好运!
【解决方案2】:

所以你需要做两件事:

首先创建一个小的 shell 脚本来从终端启动你的 java 程序。由于您已打包为 jar,请查看 this,特别是 JAR Files as Applications 部分。

这可能就足够了:(尽管您会想要使用 Java 的完整路径)

#!/bin/bash
java -jar path_to_jar_file

您应该能够运行您的脚本并成功启动您的程序。

一旦你从一个脚本开始,你就可以使用标准的 linux 工具来启动这个脚本。将其放入/etc/rc.local,或者在您使用Ubuntu 时,使用update-rc.d 在启动时启动它。有关使用 update-rc.d 的非常简单的示例,请参阅 here

希望对你有帮助,

【讨论】:

    猜你喜欢
    • 2011-11-05
    • 2014-04-25
    • 2012-11-25
    • 2011-08-22
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多