【Linux】添加web应用(jar包)为系统服务

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Mr_EvanChen/article/details/83659136

      为了可以将jar包添加成Linux的系统服务,需要做以下几样准备:

      ①启动脚本start.sh

#!/bin/bash
export JAVA_HOME=/usr/local/jdk1.8.0_171
export PATH=$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin


nohup java -jar /usr/local/xxx/ptms/ptms-1.0.0.jar -Xmx1G -Xms512M -server -XX:+UseG1GC >>/dev/null  2>&1 &
echo $! > /var/run/xxx/ptms.pid

      ②停止脚本stop.sh

#!/bin/bash
PID=$(cat /var/run/xxx/ptms.pid)
kill -9 $PID

      这里我是将两个shell文件与jar包放在同一目录下

      ③在/usr/lib/systemd/system目录下,添加ptms.service服务

[Unit]
Description=ptms server
Documentation=
Before=
After=
Wants=
#Request=

[Service]
Type=forking
WorkingDirectory=/usr/local/xxx/ptms
PermissionsStartOnly=true
ExecStart=/usr/local/xxx/ptms/ptms-start.sh

KillMode=process
ExecStop=/usr/local/xxx/ptms/ptms-stop.sh
PrivateTmp=true

Restart=always
RestartSec=2s

LimitCORE=infinity

[Install]
WantedBy=multi-user.target

④即可使用如下命令管理服务

system start xxx
systemctl stop xxx 
system restart xxx
systemctl enable xxx 

遇到问题

1、Failed at step EXEC spawning /usr/local/yealink/ptms/ptms-start.sh: Permission denied

原因是没有执行sh文件的权限,这里通过chmod 777 ptms-start.sh给相应的文件赋予最高权限即可。

2、 Failed at step EXEC spawning /usr/local/yealink/ptms/ptms.sh: No such file or directory

遇到sh文件找不到,但是确实路径又没错的情况,可以试着直接./ptms-start.sh执行sh文件,看看会不会报错:bad interpreter: No such file or directory,如果会基本就是这个sh文件格式的问题。

原因在于在window下编辑shell文件,换行符是不一样的,会产生不可见字符。我确实有把sh文件在window系统打开编辑过,此时在传到Linux系统上格式就会发生变化,在Linux上本来应该是unix的,但发现却是dos格式的。解决办法就是在linux上修改shell文件格式为unix即可。

①首先,vi打开shell文件,执行:set ff,回车,查看当前的格式

②执行:set ff=unix,将格式转为unix

再次查看文件,发现就变为unix的了

③最后保存并退出即可。

猜你喜欢

转载自blog.csdn.net/Mr_EvanChen/article/details/83659136