Linux 将 jar 注册为 service

本贴最后更新于 2200 天前,其中的信息可能已经物是人非

起因

因为有一个 web 项目打包为了 jar,而不是 war,然后发现只有连着 ssh 在服务器上运行才有效果,所以才想着将 jar 包注册为服务。

关于 systemd

systemd 即 system daemon,在 Unix 中常以“d”作为系统守护进程。与传统的 system V 相比,systemd 采用了以下新技术:

  1. 采用 Socket 激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能;
  2. 用 Cgroups 代替 PID 来追踪进程,以此即使是两次 fork 之后生成的守护进程也不会脱离 systemd 的控制。

具体实现

首先需要新建一个 xxx.service 的文件,然后填入以下内容

[Unit]
#描述
Description=xxx
#定义启动次序,表示当前unit在哪些unit之后启动
After=syslog.target

[Service]

ExecStart=/路径/java -jar  /路径/xxx.jar

[Install]

WantedBy=multi-user.target

当某个 service 文件修改后需要重载一下配置文件

systemctl  daemon-reload

后续命令

启动/停止/重启/查看状态
systemctl start/stop/restart/status xxx.service
设置开机自启
systemctl enable xxx.service
查看console log
journalctl -u xxx.service
journalctl -f -u xxx.service
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    939 引用 • 940 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...