• systemctl java jar 添加jar文件开机启动项


    转载自:https://blog.csdn.net/slqgenius/article/details/85778578

    一,原由

    因为使用 nohup 和 & 这种方式启动jar包的话,只会放在后台里面执行,如果某天,人为或机器故障等原因,触发重启了。那样程序就会关闭,不清楚系统的人,可能都不知道这个需要启动。

    所以,这里使用Centos7系统自带的systemctl管理实现一个开启自动管理

    二,创建系统文件

    # 路径一定要写清楚,systemctl要根据这个来编写

    vim /etc/init.d/zuul

    #zuul文件的内容 

    1. #!/bin/bash
    2. PID_PATH=/var/run/zuul-service.pid
    3. Service_Name=zuul-service
    4.  
    5. case "$1" in
    6. start)
    7. /zuul-service/zuul-start.sh
    8. ;;
    9. stop)
    10. kill $(cat ${PID_PATH})
    11. rm ${PID_PATH}
    12. ;;
    13. restart)
    14. $0 stop
    15. $0 start
    16. ;;
    17. status)
    18. if [ -e ${PID_PATH} ];then
    19. echo "${Service_Name} is running, pid=$(cat ${PID_PATH})"
    20. else
    21. echo "${Service_Name} is NOT running"
    22. exit 1
    23. fi
    24. ;;
    25. *)
    26. echo "Usage: $0 {start|stop|status|restart}"
    27. esac
    28.  
    29. exit 0

     #赋予执行权限

    chmod a+x /etc/init.d/zuul

     

    三,创建启动脚本

    vim /zuul-service/zuul-start.sh

    #zuul-start文件的内容 

     
    1. #!/bin/bash
    2. #启动命令
    3. /usr/bin/java -jar /zuul-service/rocket-zuul-0.0.1-SNAPSHOT.jar >> /zuul-service/zuul.log 2>&1 &
    4. #将pid写进文件
    5. echo $! > /var/run/zuul-service.pid

     #赋予执行权限

    chmod a+x /zuul-service/zuul-start.sh
     

    四,将服务添加进systemctl进行管理

    vim  /usr/lib/systemd/system/zuul.service

     #zuul.service文件的内容 

    1. [Unit]
    2. Documentation=zuul-service
    3.  
    4. [Service]
    5. User=root
    6. Group=root
    7. Type=forking
    8. Restart=no
    9. KillMode=process
    10. ExecStart=/etc/rc.d/init.d/zuul start
    11. ExecStop=/etc/rc.d/init.d/zuul stop
    12.  
    13. [Install]
    14. WantedBy=multi-user.target

    #启动zuul 

    systemctl daemon-reload
    systemctl enable zuul
    
    systemctl start zuul

    1. CentOS7自定义系统服务
    2.  
    3. CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/systemd/system目录下.
    4. CentOS7的每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install] 
    5.  
    6. [Unit]部分主要是对这个服务的说明,内容包括Description和After,Description 用于描述服务,After用于描述服务类别
    7.  
    8.  
    9. [Service]部分是服务的关键,是服务的一些具体运行参数的设置.
    10.  
    11. # 设置服务运行的用户
    12. User=users
    13.  
    14. # 设置服务运行的用户组
    15. Group=users
    16.  
    17. # 设置进程的启动类型
    18. Type=forking
    19.  
    20. # 服务重启策略
    21. Restart=no
    22.  
    23. # 杀掉进程的策略
    24. KillMode=process
    25.  
    26. # 服务的具体运行命令
    27. ExecStart
    28.  
    29. # 停止命令
    30. ExecStop
    31.  
    32. # 重置命令
    33. ExecReload
    34.  
    35. # 存放PID的文件路径,
    36. PIDFile
    37.  
    38. # 环境变量
    39. Environment="JAVA_HOME=/usr/local/jdk1.8.0_181"
    40.  
    41. # 表示给服务分配独立的临时空间
    42. PrivateTmp=True
    43.  
    44. 注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错!

    五、systemctl管理命令

    #设置开机自启

    systemctl enable zuul

    #关闭开机自启

    systemctl disable zuul

    #启动服务

    systemctl start zuul

    #停止服务

    systemctl stop zuul

    #重启服务

    systemctl restart zuul

    #查看服务状态

    systemctl status zuul

    #检查开机自启状态

    systemctl is-enabled zuul


  • 相关阅读:
    UVA 10970 Big Chocolate
    HBuilder 安装uviewui2.0
    域名访问配置支持ipv6
    SSIS学习视频(SQL Server 2008)
    碰到MySQL无法启动1067错误问题
    对存储过程进行加密和解密(SQL 2008/SQL 2012)
    脚本文件比较工具WinMerge
    通过SQL绘制杨辉三角
    通用分页存储过程(SQL Server 2005)
    重新组织和重新生成索引sp_RefreshIndex
  • 原文地址:https://www.cnblogs.com/Chary/p/13946562.html
Copyright © 2020-2023  润新知