Linux中监控jar包启动并自动执行

                                                     #Linux中监控jar包的启动

说明:
创建人: csc
时间: 2023-06-05
环境: OpenCloudOS/CentOS 8
本人亲测无论是 重启系统还是 kill -9 杀掉进程 都会自动启动.

可以通过编写一个systemd服务来让系统自动启动jar包。以下是具体步骤:

第一步. 首先进入到linux系统中的/etc/systemd/system/目录下,命令如下

 cd /etc/systemd/system 

第二步. 创建一个myapp.service 文件 命令如下:
#友情提示 如果文件不存在也可以直接vim myapp.service命令 会直接创建进入编辑模式 往下不在解释

touch myapp.service
#友情提示 如果文件不存在也可以直接vim myapp.service命令 会直接创建进入编辑模式
vim myapp.service

第三步. 编辑文件 命令如下:

vim myapp.service

将下面的命令复制到myapp.service命令中:

[Unit]
Description=My App Service
After=network.target

[Service]
User=root
WorkingDirectory=/path/to/your/jar/file/
ExecStart=/usr/bin/java -jar your.jar
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

属性解释:

   Description表示服务的描述,可以自定义;
   After表示该服务要在网络服务启动后才能启动,也可以指定某个jar包启动之后再启动该jar包服务 
   User表示该服务要以root用户身份运行;
   WorkingDirectory表示你自己jar包所在的路径;
   **ExecStart表示要执行的命令 /usr/bin/java 是你jdk安装的目录下的bin文件夹 别忘了改成你自己的;**
   RestartRestartSec表示服务停止后要重新启动的时间间隔

第四步:

 点击 esc
 输入  :wq 退出编辑
  1. 退出文件后,然后执行以下命令:
systemctl daemon-reload
systemctl enable myapp.service
systemctl start myapp.service
#查看运行状态
systemctl status myapp.service
#停止服务
systemctl stop myapp.service

这样,系统就会自动启动你的jar包了。

扩展:
4. 以上其实就可以了. 但是也可以指定运行的堆栈大小和环境:
4.1 先在jar同目录下 《编辑并创建一个.env的文件》,这个文件要有可执行权限如下图:

  vim netty-server.env  #netty-server文件的名字 你们自己随意

成功后如下图
在这里插入图片描述
4.2 文件中的命令如下:

扫描二维码关注公众号,回复: 16891268 查看本文章
   JAVA_OPTS=-Xms256m -Xmx512m -Xmn256m -Xss512k

在这里插入图片描述

  1. 然后在my.service文件中的[service]中添加:
EnvironmentFile=-/data/netty-server.env
  1. 我的my.service文件的完整命令如下:
[Unit]
Description=My App Service
After=network.target

[Service]
User=root
EnvironmentFile=-/data/netty-server.env
WorkingDirectory=/data
ExecStart=/usr/local/java/jdk1.8.0_361/jre/bin/java $JAVA_OPTS -jar /data/netty-server.jar
SuccessExitStatus=143
StandardOutput=journal
StandardError=journal
Restart=on-failure
RestartSec=60s

[Install]
WantedBy=multi-user.target

然后在依次执行就可以了 :

systemctl daemon-reload
systemctl enable myapp.service
systemctl start myapp.service

猜你喜欢

转载自blog.csdn.net/qq_37120477/article/details/131047103
今日推荐