CentOS7 后台运行 Java 程序

1. 引言

在 Linux 系统中,有时候我们需要将 Java 程序以后台方式运行,以便在终端关闭后程序仍然能够继续执行。本文将介绍在 CentOS7 上如何后台运行 Java 程序,并附带代码示例。

2. 使用 nohup 命令

在 CentOS7 中,我们可以使用 nohup 命令来实现后台运行 Java 程序。nohup 命令用于忽略挂断信号,使程序在终端关闭后继续运行。

下面是一个示例的 Java 程序,在后台运行时输出一条简单的信息:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

要想在后台运行该程序,可以执行以下命令:

$ nohup java HelloWorld &

执行后,会在当前目录下生成一个名为 nohup.out 的文件,该文件中包含了程序的输出信息。

3. 使用 systemd 服务

另一种常见的方式是使用 systemd 服务来后台运行 Java 程序。systemd 是一种系统和服务管理器,可以为我们提供更加便捷的服务管理功能。

首先,我们需要创建一个名为 hello.service 的服务文件,内容如下:

[Unit]
Description=Hello Service

[Service]
ExecStart=/usr/bin/java -jar /path/to/hello.jar
WorkingDirectory=/path/to/
Restart=always
User=nobody

[Install]
WantedBy=multi-user.target

其中,ExecStart 指定了要运行的 Java 程序的路径,WorkingDirectory 指定了程序的工作目录,User 指定了程序运行的用户。

将该服务文件保存到 /etc/systemd/system 目录下,然后执行以下命令以启动服务:

$ sudo systemctl start hello

要想在系统启动时自动启动该服务,可以执行以下命令:

$ sudo systemctl enable hello

通过以上步骤,我们就可以使用 systemd 服务来后台运行 Java 程序了。

4. 总结

本文介绍了在 CentOS7 上后台运行 Java 程序的两种方法:使用 nohup 命令和使用 systemd 服务。通过这些方法,我们可以确保 Java 程序在终端关闭后仍然能够继续执行。

希望本文对您有所帮助,谢谢阅读!

附录

代码示例

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

饼状图示例

pie
    title 饼状图示例
    "A" : 40
    "B" : 20
    "C" : 15
    "D" : 25

参考资料

  • [Linux nohup命令](
  • [systemd - ArchWiki](
  • [Writing unit files](