Rocky(centos) jar 注册成服务,能开机自启动

这篇具有很好参考价值的文章主要介绍了Rocky(centos) jar 注册成服务,能开机自启动。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

涉及:1)sh 无法直接运行java命令,可以软连,此处是直接路径

2)sh脚本报一堆空格换行错误:需将转成unix标准格式;

#切换到上传的脚本路径
dos2unix 脚本文件名.sh

2)SELINUX 授权允许启动sh 脚本

3)SELINUX 授权允许启动写入的日志文件

软连接方法(无需操作)

cd /usr/bin
ln -s -f /usr/local/jdk17/java

操作步骤

1、新建sh 脚本

 新建:service_script.sh 脚本

注:需要配置
1)jdk的路径;2)程序日志路径;3)java 名称;4)启动端口

#!/bin/bash 
#这里替换为jar包名字
APP_NAME=hy-admin.jar
#根据实际情况修改参数
JVM="-server -Xms4g -Xmx4g"
#APPFILE_PATH="-Dspring.config.location=/usr/local/config/application.properties"

export JAVA_HOME=/usr/local/jdk17
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin


#使用说明,用来提示输入参数 
usage() { 
    echo "Usage: sh 执行脚本.sh [start|stop|restart|status|log|backup] [port]" 
    exit 1 
} 

port=$2 
#检查指定端口是否是有程序在运行
is_exist(){
    # 默认端口
    if [ "${port}" == "" ]; then
    # 默认使用9000
	port=9000
    fi 
    # 获取端口占用的进程号
    pid=`lsof -i:$port | awk 'NR == 2' | awk '{print  $2}'`
    #如果不存在返回1,存在返回0
    if [ -z "${pid}" ]; then 
        return 1 
    else 
        return 0 
    fi 
} 

#启动方法 
start(){ 
    is_exist 
    if [ $? -eq "0" ]; then 
        echo "${port} 端口已经被 ${pid} 进程占用" 
    else 
        #nohup java $JVM -jar $APPFILE_PATH $APP_NAME > /dev/null 2>&1 
                #后台启动jar包,且控制环境变量,根据实际情况修改吧。
        #nohup java $JVM -jar $APP_NAME --spring.profiles.active=prod > /dev/null 2>&1 &
	cd /data/hy-cost-grain-pro
	echo "">log.file
	nohup ${JAVA_HOME}/bin/java -jar ${APP_NAME} --server.port=${port} >log.file  2>&1 &
	echo " ${APP_NAME} 进程 $! 在 ${port} 端口启动中......"
	log
    fi
} 

#停止方法 
stop(){ 
    is_exist 
    if [ $? -eq "0" ]; then 
        kill -9 $pid
	echo "${port} 端口的进程 ${pid} 已经被中断" 
    else 
        echo "${port} 端口未启用" 
    fi 
} 

#输出运行状态 
status(){ 
    is_exist 
    if [ $? -eq "0" ]; then 
        echo "${port} 端口已被进程  ${pid} 占用" 
    else 
        echo "${port} 端口未被占用" 
    fi 
} 
#重启 
restart(){ 
    stop 
    start 
} 

#日志
log(){
        # 输出实时日志
    tail -n 100 -f log.file
}

#备份
backup(){
        #根据需求自定义备份文件路径。
    BACKUP_PATH=./back/
        #获取当前时间作为备份文件名
    BACKUP_DATE=`date +"%Y%m%d(%H:%M:%S)"`
    echo 'backup file ->'$BACKUP_PATH$BACKUP_DATE'.jar'
        #备份当前jar包
    cp -r ./$APP_NAME  $BACKUP_PATH$BACKUP_DATE'.jar'
}

#根据输入参数,选择执行对应方法,不输入则执行使用说明 
case "$1" in 
    "start") 
        start 
        ;; 
    "stop") 
        stop 
        ;; 
    "status") 
        status 
        ;; 
    "restart") 
        restart 
        ;; 
    "log") 
        log 
        ;; 
    "backup") 
        backup 
        ;; 
    *) 
usage 
;; 
esac

注意上传的.sh脚本转成系统可识别的unix编码格式的文件

上传后切换到脚本路径:运行如下命令

dos2unix service_script.sh

2、生成日志文件并授权

SELINUX 允许启动写入日志的文件;2-3步骤,理论也可以关闭SELINUX

echo ''>/data/hy-cost-grain-pro/log.file
chmod 777 /data/hy-cost-grain-pro/log.file

#授予启动脚本写入
semanage fcontext -a -t var_log_t /data/hy-cost-grain-pro/log.file
restorecon -Rv /data/hy-cost-grain-pro/log.file

#查看授权
semanage fcontext -l|grep var_log_t

Rocky(centos) jar 注册成服务,能开机自启动,centos,jar,linux

3、授权启动脚本启动权限

设置 SELINUX 允许启动运行的脚步,2-3步骤,

#允许运行启动脚本
semanage fcontext -a -t init_exec_t /data/hy-cost-grain-pro/service_script.sh
restorecon -R -v /data/hy-cost-grain-pro/service_script.sh

#查看授权
semanage fcontext -l|grep init_exec_t

Rocky(centos) jar 注册成服务,能开机自启动,centos,jar,linux

或者关闭selinux(见下面)并授权

chmod 777 /data/hy-cost-grain-pro/service_script.sh

4、新建启动服务文件

新建 java-grain-9000.service 文件

[Unit]
Description=java-cost-grain-pro
After=syslog.target
[Service]
Type=simple
#延迟启动,如果jar包需要运用到数据库,所以在这加了睡眠10秒
ExecStartPre=/bin/sleep 8 
ExecStart=/data/hy-cost-grain-pro/service_script.sh start
ExecReload=/data/hy-cost-grain-pro/service_script.sh restart
ExecStop=/data/hy-cost-grain-pro/service_script.sh stop

[Install]
WantedBy=multi-user.target

5、上传并加入开机自动

上传至 :/etc/systemd/system

#刷新服务配置
systemctl daemon-reload
# 启动服务
systemctl start java-grain-9000.service
# 服务开机自启
systemctl enable java-grain-9000.service
# 停止服务
systemctl stop java-grain-9000.service
# 查看服务状态
systemctl status java-grain-9000.service -l
#运行查看倒数50行
tail -fn 50 /data/hy-cost-grain-pro/log.file
#运行实时查看日志
tail -f /data/hy-cost-grain-pro/log.file

重启,测试开机自启,启动花了15s

reboot

 Rocky(centos) jar 注册成服务,能开机自启动,centos,jar,linux

 可能问题:

1)无:lsof 命令

yum install lsof

Rocky(centos) jar 注册成服务,能开机自启动,centos,jar,linux

 2) SELinux 介绍

SELinux 有三种工作模式,注意:没有特别安全要求,可以使permissive;不同级别配置相同;

  1. enforcing:强制模式。任何违反策略的行为都会被禁止,并且产生警告信息。

  2. permissive:允许模式。违反策略的行为不会被禁止,只产生警告信息。

  3. disabled:关闭 SELinux。

3)selinux 永久关闭

一、临时关闭

setenforce 0

注意:重启系统后还会开启。

二、永久关闭
1、vim /etc/selinux/config,SELINUX=disabled,然后保存退出。

2、 vim /etc/sysconfig/selinux,SELINUX=disabled,然后保存退出。

注意:如未生效重启即可 

三、验证方法
输入命令:getenforce  

Rocky(centos) jar 注册成服务,能开机自启动,centos,jar,linux

4)若切换路径的数据库也能自启:请参考本人博客

Centos(rocky,red Hat) yum 安装mysql,切换路径并设置开机自启

Centos(rocky,red Hat) yum 安装mysql,切换路径并设置开机自启_rocky和red hat_小云小白的博客-CSDN博客1、安装方式介绍mysql安装共3中方式1)yum安装,最简单的方式2)rpm包安装,切记下载相应系统的 稳定版 源码包,相对较简单3)压缩包安装:自由度高,但配置相应复杂,且需要自己注册自启服务注:1,2,3无法在一台机器上共存,1,2可以通过mulit-mysql启动多个服务看,但无法实现:单机上的myql主从只有3方式支持1台安装多个mysql服务,实现mysql主从一、安装步骤1.获取最新的yum rmp包地址下载地址:MySQL :: MySQL Commu_rocky和red hathttps://blog.csdn.net/qq_26408545/article/details/124114793?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22124114793%22%2C%22source%22%3A%22qq_26408545%22%7D文章来源地址https://www.toymoban.com/news/detail-628541.html

到了这里,关于Rocky(centos) jar 注册成服务,能开机自启动的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux:将服务重启脚本加入CentO7的开机启动里

    我们的平台服务使用 docker 部署,使用 docker-compose 进行管理 平台部署到客户环境时,一小部分客户,使用自己机房或单独的服务器,并没有做断电保护,有时候这台服务器会断电重启 断电重启后,我们的平台服务要能自动拉起来,为客户正常提供服务 实现思路很简单,创建

    2024年02月11日
    浏览(33)
  • Linux_CentOS_7.9 VNC安装卸载以及相关配置开机自启动服务简易记录

    2.1 拷贝配置文件,必须有冒号和数字 2.2 修改配置文件中的 参数为具体登录参数(配置文件中需要与操作系统登录用户保持一致,然后用这个操作系统登录linux以后,执行vncpasswd才会生效) 2.3 设置密码(先copy脚本,后设置vnc密码,其中只读用户可选,一般选择N即可) 2.4 配

    2024年01月23日
    浏览(50)
  • Rocky Linux 安装图解(替代centos)服务器+桌面

    centos自从20年底转变为不稳定版本后,有很多替代方案 经过近3年的发展,rocky linux算是一个比较好的选择,一是依照red hat企业版来做,二是rocky的发起者也是centos的创始人 如果想安装debian,可以参考:debian图解安装 如果想安装ubuntu,可以参考:ubuntu图解安装 2023.9.17更新教程

    2024年02月08日
    浏览(47)
  • Linux查看开机启动的服务

    在Linux系统中,可以使用不同的命令和工具来查看开机启动的服务。以下是一些常用的方法: systemctl 命令: 使用 systemctl 命令可以查看系统中所有正在运行的服务以及它们的状态。 若要查看某个特定服务的状态,可以使用: 若要查看某个服务是否在开机时启动,可以使用:

    2024年02月04日
    浏览(28)
  • Linux如何查看服务启动状态是否开机自动启动

    本文为joshua317原创文章,转载请注明:转载自joshua317博客 Linux如何查看服务启动状态是否开机自动启动 - joshua317的博客 linux中查看服务启动状态是否开机自动启动的方法: 1、打开linux终端; 2、在终端命令行中输入“chkconfig --list servicename”命令查看服务启动状态是否开机自动

    2023年04月09日
    浏览(37)
  • linux实现开机自启动服务/脚本

    linux实现开机自启动服务或者开机自运行用户自定义脚本有三种方式 方式一: 执行 systemctl enable 服务名 命令,将对应服务的.service文件软链接到 /etc/systemd/system/multi-user.target.wants/ 目录下 (此种方式一般适用于通过rpm部署的软件,系统自动创建了对应服务的.service文件这种情

    2024年02月07日
    浏览(32)
  • 本地开机启动jar

    1:首先有个可运行的jar包 本地以ruiyi代码为例打包 2:编写bat命令---命名为.bat即可 @echo off java -jar D:everyDaytestRuoYitargetRuoYi.jar 3:设置为开机自启动启动 快捷键win+r----输入shell:startup---打开启动文档夹 把bat文件复制过来 4:关机重启--发现自动启动了 5:在浏览器输入jar的端

    2024年02月10日
    浏览(23)
  • Linux elasticsearch设置为开机自启动服务

    说明: (1)“su es”为切换用户名,“es”为系统新建的用户名 (2)“/usr/local/elasticsearch-6.2.3”为el安装目录 具体el安装流程:请点击这里

    2024年02月13日
    浏览(23)
  • linux环境中设置docker服务开机自启动

    欢迎各位指出,大家共同交流和学习。 如有帮助,请点赞加支持! 送人玫瑰手有余香!🌹🌹🌹 linux系统,每次重启之后,docker服务都是关闭的,如下所示: 因此,每次都需要用如下命令手动开启服务: 但是,每次重启系统都要手动开启命令,比较麻烦,因此,将其服务设

    2023年04月22日
    浏览(30)
  • CentOS开机自动运行jar程序实现

    前面已经有一篇文章介绍jar包如何在CentOS上运行,《在linux上运行jar程序操作记录》 后来发现系统重启后不能自动运行,导致每次都要手动打开,这篇介绍如何自动开机启动运行jar程序。 可以看到,最终找到的位置是: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64/jre/bin/j

    2024年02月08日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包