我正在使用命令提示符运行可执行jar。但是在命令提示符关闭后,执行停止。我需要永久运行。因为这是微服务。
我如何实现这个目标
我正在使用java -jar JARPATH
答案 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 ,现在可以在大多数发行版中运行
发现您的用户定义服务地雷位于/usr/lib/systemd/system/
使用您喜欢的文本编辑器将其命名为whatever_you_want.service
将模板后面的内容放入文件whatever_you_want.service
[Unit]
Description= webserver Daemon
[Service]
ExecStart= /usr/bin/java -jar /web/server.jar
User=user
[Install]
WantedBy= multi-user.target
运行服务 以超级用户身份
$ 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