Ubuntu编写开机启动脚本

1 概述

  • 【Ubuntu编写开机启动脚本】服务器一般不可能百分之百不会挂,于是一般采用主备或者分布式来达到高可用。
  • 挂掉的机器有很多处理策略,常用的就是重新启动,但是为了保证重启之后服务器能够恢复可用状态,需要配置开机启动脚本。
2 编写启动脚本
  • 服务脚本:假设服务名字为test
#!/bin/bash ### BEGIN INIT INFO # Provides:littleevil # Required-Start:$local_fs $network # Required-Stop:$local_fs # Default-Start:2 3 4 5 # Default-Stop:0 1 6 # Short-Description: test service # Description:test service daemon ### END INIT INFO# 文件服务器 运营平台 商户平台 files=(file opt merchant) # 目录 deploy=/home/littleevil/deploy/start() { echo "starting test service..." for var in ${files[@]}; do # 进入目录并运行服务器启动脚本 cd $deploy$var sh start.sh done }stop() { echo "stopping test service..." for var in ${files[@]}; do # 进入目录并运行服务器停止脚本 cd $deploy$var sh stop.sh done }restart() { stop start }# 这里没有重写status case "$1" in start) start ; ; stop) stop ; ; restart) restart ; ; esac

  • 服务器启动脚本:这里演示文件服务器的启动脚本
#!/bin/shecho "you will start server" echo "please waiting ...."ps -ef|grep file.jar|grep -v grep|awk {'print $2'}|while read line do kill -9 $line donerm -rf log.out# JVM调优参数未写 需要根据实际情况进行调整 nohup nice java -server -XX:+UseG1GC -XX:+PrintGCDetails -XX:+PrintHeapAtGC -Xloggc:./gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./oom.dump -jar file.jar >log.out&

  • 服务器停止脚本
#!/bin/shecho "you will stop server" echo "please waiting ...."ps -ef|grep file.jar|grep -v grep|awk {'print $2'}|while read line do sudo -S kill -9 $line donerm -rf log.out

3 设置脚本开机自启动
  • 复制文件夹中的test服务脚本至linux系统的/etc/init.d目录下
  • 进入/etc/init.d目录执行sudo update-rc.d test defaults 95
  • 执行sudo sysv-rc-conf查看服务是否添加
  • 执行 sudo service test start/stop/restart/status或者sudo systemctl start/stop/restart/status test.service测试服务是否添加成功 (需要重启服务器)
  • 执行 sudo sysv-rc-conf --level 2345 delightd on
  • 最后通过sudo reboot测试服务开启是否可以自启动
转载于:https://www.cnblogs.com/linzhanfly/p/9915481.html

    推荐阅读