可执行jar永久运行

时间:2018-12-04 10:21:34

标签: java microservices

我正在使用命令提示符运行可执行jar。但是在命令提示符关闭后,执行停止。我需要永久运行。因为这是微服务。 我如何实现这个目标 我正在使用java -jar JARPATH

3 个答案:

答案 0 :(得分:3)

有几种选择:

1)如第一个答案和评论中所述创建服务。

2)在后台运行一个进程。

nohup java -jar my-service.jar &

nohup命令中,当用户退出外壳程序时,该过程可使进程在后台继续运行。

要终止服务,您需要终止该进程。

您可以创建run-script将PID写入变量(或文本文件):

#!/bin/bash
my-service &
export SERVICE_PID=$!

并杀死stop-script中的PID:

#!/bin/bash
kill -9 $SERVICE_PID

3)在容器中运行进程,例如Docker

容器中的运行过程允许具有一些优点,并允许管理许多不同的选项,而不仅仅是“运行和停止”。

答案 1 :(得分:1)

只需创建一个服务来调用jar文件。服务可以无限期运行,可以在启动时触发,也可以手动启动或停止。

答案 2 :(得分:0)

Systemd ,现在可以在大多数发行版中运行

步骤1:

发现您的用户定义服务地雷位于/usr/lib/systemd/system/

步骤2:

使用您喜欢的文本编辑器将其命名为whatever_you_want.service

步骤3:

将模板后面的内容放入文件whatever_you_want.service

[Unit]
Description= webserver Daemon

[Service]
ExecStart= /usr/bin/java -jar /web/server.jar
User=user

[Install]
WantedBy= multi-user.target

步骤4:

运行服务 以超级用户身份

$ systemctl start whatever_you_want.service # starts the service
$ systemctl enable whatever_you_want.service # auto starts the service
$ systemctl disable whatever_you_want.service # stops autostart
$ systemctl stop whatever_you_want.service # stops the service
$ systemctl restart whatever_you_want.service # restarts the service