1 概述

  • 服务器一般不可能百分之百不会挂,于是一般采用主备或者分布式来达到高可用。

  • 挂掉的机器有很多处理策略,常用的就是重新启动,但是为了保证重启之后服务器能够恢复可用状态,需要配置开机启动脚本。

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/sh

echo "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
done rm -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/sh

echo "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
done rm -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测试服务开启是否可以自启动

最新文章

  1. Android studio 快捷键(Mac)
  2. go语言之并发
  3. wdcp 打开网页显示 Apache 2 Test Page powered by CentOS
  4. 用c#开发微信 (22) 微信商城 - 微信支付 (c#源码)
  5. 物理地址 = 段地址*10H + 偏移地址
  6. 常见的排序算法之Java代码解释
  7. [转] 条件变量(Condition Variable)详解
  8. poj 2406Power Strings
  9. Android onSaveInstanceState()
  10. windows设置照片查看器为默认的照片查看软件
  11. Java中的Integer和int
  12. 跨SQL注入
  13. (剑指Offer)面试题45:圆圈中最后剩下的数字
  14. java.lang.String 使用介绍
  15. [Linux]Ubuntu下安装Sublime-text 且 支持中文输入
  16. Easy APNs Provider 消息推送测试工具
  17. 使用Java对文件进行解压缩
  18. mongodb聚合 group
  19. mxonline实战5,用户注册的验证码
  20. ios开发 学习积累20161027~20161031

热门文章

  1. 以太坊 Geth 环境搭建(Ubuntu)
  2. How to Publish a NuGet Package
  3. v-on绑定特性命名带小横杠 ‘-’与props属性中变量怎么对应
  4. [转]用代码访问 Https
  5. Android 显示系统:飞思卡尔平台图形界面与GPU硬件加速
  6. kotlin 修饰符
  7. ubuntu18 faster-rcnn
  8. JAVA 基础编程练习题48 【程序 48 加密】
  9. mvn安装
  10. 配置Xmanager远程登录