스크립트 파일 생성 및 권한 부여
#!/bin/sh
# java项目jar包所在位置,demo为jar名称
cd /usr/local/src/demo
pid=`ps -ef|grep 'demo.jar*'|grep -v grep|awk '{print $2}'`
if [ -n "${pid}" ];then
kill -9 ${pid}
echo "Process demo killed!"
nohup java -Dspring.profiles.active=prod -server -Xms128m -Xmx256m -XX:CompressedClassSpaceSize=128m -XX:MetaspaceSize=200m -XX:MaxMetaspaceSize=200m -jar demo.jar > ./demo.log &
echo "ReStart demo Success!"
tail -100f /usr/local/src/demo/demo.log
else
nohup java -Dspring.profiles.active=prod -server -Xms128m -Xmx256m -XX:CompressedClassSpaceSize=128m -XX:MetaspaceSize=200m -XX:MaxMetaspaceSize=200m -jar demo.jar > ./demo.log &
echo "Start demo Success!"
tail -100f /usr/local/src/demo/demo.log
fi
chmod 777 데모.sh
다음으로 자체 시작을 설정하는 두 가지 방법이 있습니다.
방법 1: 시작 항목 구성 수정
일반 경로인 rc.local 스크립트를 찾습니다.
cd /etc/rc.local
rc.local에 스크립트의 절대 경로를 추가하세요. 괜찮습니다.
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
/usr/local/src/demo/demo.sh >/tmp/demo.log 2>&1
마찬가지로 rc.local 및 demo.sh 스크립트 파일에 권한을 부여해야 합니다.
방법 2: 등록 서비스
#创建相关服务文件
vim /etc/systemd/system/demo.service
서비스 파일 내용:
[Unit]
Description=demo-service
After=network.target
[Service]
Type=forking
#ExceStart 为启动命令 请确认 启动地址和路径等等
ExecStart=/usr/local/src/demo/demo.sh
[Install]
WantedBy=multi-user.target
서비스로 설정
#重载系统服务
systemctl daemon-reload
#测试 服务是否生效
systemctl start demo.service
ps aux|grep demo
# 设置服务为开机启动服务
systemctl enable demo.service
#开机服务查询
systemctl list-units --type=service
注意
: 스크립트 파일에 권한이 부여되어야 합니다.