centos7 系统启动自动执行shell脚本

快来打我* 2022-12-05 10:20 700阅读 0赞

1. 创建启动脚本

  1. touch start.sh

内容参考:

  1. #!/bin/bash
  2. echo '准备启动 mongodb...'
  3. cd /home/developer/MongoDB && sh ./start.sh &&
  4. echo 'mongodb启动完毕!'
  5. echo '准备启动 rocketMQ...'
  6. cd /home/developer/RocketMQ && sh ./startrocketmq.sh &&
  7. echo 'rocketMQ 启动完毕!'
  8. ~

2. 加入启动执行目录

  1. sudo vim /etc/rc.d/rc.local

内容参考:

  1. #!/bin/bash
  2. # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
  3. #
  4. # It is highly advisable to create own systemd services or udev rules
  5. # to run scripts during boot instead of using this file.
  6. #
  7. # In contrast to previous versions due to parallel execution during boot
  8. # this script will NOT be run after all other services.
  9. #
  10. # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
  11. # that this script will be executed during boot.
  12. touch /var/lock/subsys/local
  13. su - developer -c 'cd /home/developer/ && sh start.sh'

3. 赋予执行权限

  1. sudo chmod +x /etc/rc.d/rc.local

4. 注意点

  • .sh的脚本开头有#!/bin/bash
  • 因为很多启动脚本都涉及到日志输出(特别是自己的应用启动脚本), 所以配置的命令最好是先cd到对应目录, 然后再执行脚本
  • 注意启动的用户, 如果都以root启动, 则后续其他用户不方便操作root留下的进程以及生成的文件, 建议切换到对应权限的用户执行
    切换用户命令su - username -c (username改为自己的用户名)

发表评论

表情:
评论列表 (有 0 条评论,700人围观)

还没有评论,来说两句吧...

相关阅读

    相关 SpringBoot启动自动执行sql脚本

    在开发当中我们每次发布服务都需要手动执行脚本,然后重启服务,而SpringBoot有服务启动自动执行sql脚本的功能的,可以为我们省去手动执行脚本的这一步,只需要部署新的服务即