Linux は Java プロジェクトを自動的に開始するように設定します

スクリプトファイルを作成して権限を付与する

#!/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

次に、自動始動を設定するには 2 つの方法があります。

方法 1: スタートアップ項目の構成を変更する

rc.local スクリプト (一般パス) を見つけます。

cd /etc/rc.local

rc.localにスクリプトの絶対パスを追加すればOKです

#!/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

注意: スクリプト ファイルには権限が必要です

おすすめ

転載: blog.csdn.net/qq_41596778/article/details/130194831
おすすめ