CentOS7.4系统重启时执行自定义脚本

安稳与你 提交于 2020-01-09 00:55:22
  1. demo脚本文件内容
#!/usr/bin/env bash
# chkconfig: 123456 10 90 
# description: myservice ....
filename="/usr/local/jar/demo.jar"
logpath="/usr/local/jar/temp.log"
pid=`ps -ef | grep ${filename} | grep -v grep | awk '{print $2}'`
if [ -z "${pid}" ]; then
    echo "begin start"
    # 这里一定要用全路径,直接写java系统重启后找不到
    nohup /usr/local/java/bin/java -jar ${filename} >> ${logpath} 2>&1 &
else
    echo ${pid}
    echo "starting"
fi

chkconfig 的123456说明:
缺省的运行级,RHS用到的级别如下:
0:关机
1:单用户模式
2:无网络支持的多用户模式
3:有网络支持的多用户模式
4:保留,未使用
5:有网络支持有X-Window支持的多用户模式
6:重新引导系统,即重启
123456后面的10 90说明:
对各个运行级的详细解释:
0 为停机,机器关闭。
1 为单用户模式,就像Win9x下的安全模式类似。
2 为多用户模式,但是没有NFS支持。
3 为完整的多用户模式,是标准的运行级。
4 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本 电脑的电池用尽时,可以切换到这个模式来做一些设置。
5 就是X11,进到X Window系统了。
6 为重启,运行init 6机器就会重启。

  1. 将文件放在==/etc/rc.d/init.d/==文件夹下面
  2. 赋予脚本执行权限,chmod +x demo.sh
  3. 增加开机启动项
chkconfig --add demo.sh
chkconfig demo.sh on
  1. 修改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

# 重启jar包,千万注意别写错路径
/etc/rc.d/init.d/demo.sh

  1. 赋予rc.local文件执行权限,chmod +x rc.local
  2. 验证demo.sh文件是否开机自动启动

  1. 重启验证就可以了,最后嘱咐大家一句,一定要每次去查看重启后的运行脚本中自己输出的日志,因为有可能我们的情况不一样。欢迎各位及时留下宝贵的意见,我们共同讨论、进步。
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!