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

Ubuntu编写开机启动脚本的更多相关文章

  1. ubuntu设置开机启动脚本

    rc.local脚本 rc.local脚本是一个ubuntu开机后会自动执行的脚本,我们可以在该脚本内添加命令行指令.该脚本位于/etc/路径下,需要root权限才能修改. 该脚本具体格式如下: #! ...

  2. Ubuntu编写开机自启动脚本(转载)

    From:http://blog.csdn.net/marujunyy/article/details/8466255 1.首先编写一个简单的shell脚本test.sh #! /bin/bash e ...

  3. 为 Android 8.0 添加开机启动脚本【转】

    本文转载自:https://zhuanlan.zhihu.com/p/32868074 本人对于 SELinux for Android 理解不深,下文中的各文件及安全规则虽都是我所编写,但也是一边查 ...

  4. 关于Ubuntu运行级别、开机启动脚本的说明

    关于Ubuntu运行级别.开机启动脚本的说明 目录简介 1.1介绍Ubuntu下面的自启动脚本目录 1.2 Linux操作系统运行级别的概念 1.3关于操作系统自启脚本的启动顺序 1.4    Lin ...

  5. Ubuntu 16.04设置开机启动脚本的方法

    需求:公司卡片机容量太小,只有100G,由于使用的人比较的多,开机使用后有时候就会出现磁盘空间占满数据写不进去的情况,影响工作进度,而且每次使用完都得关掉卡片机,所以就有必要写个清理磁盘的脚本,当卡片 ...

  6. Ubuntu 14.04设置开机启动脚本的方法

    rc.local脚本 rc.local脚本是一个ubuntu开机后会自动执行的脚本,我们可以在该脚本内添加命令行指令.该脚本位于/etc/路径下,需要root权限才能修改. 该脚本具体格式如下: #! ...

  7. [转]Ubuntu下添加开机启动脚本

    作者: 王恒 发表于 2012年 11月 5日 1.方法一,编辑rc.loacl脚本 Ubuntu开机之后会执行/etc/rc.local文件中的脚本, 所以我们可以直接在/etc/rc.local中 ...

  8. ubuntu系统自动配置开机启动脚本

    以前一直搞的centos配置开机启动脚本,但是相同方法用在ubuntu系统上就不管用了,非常伤脑筋. 非常感谢  https://www.linuxidc.com/Linux/2017-09/1471 ...

  9. Ubuntu 18.04 设置开机启动脚本 rc.local systemd

    ubuntu18.04不再使用initd管理系统,改用systemd. ubuntu-18.04不能像ubuntu14一样通过编辑rc.local来设置开机启动脚本,通过下列简单设置后,可以使rc.l ...

随机推荐

  1. flask 设置配置文件的方式

    from flask import Flask from flask import current_app """ 配置参数设置与读取 """ ...

  2. 高并发实时弹幕系统 并发数一定是可以进行控制的 每个需要异步处理开启的 Goroutine(Go 协程)都必须预先创建好固定的个数,如果不提前进行控制,那么 Goroutine 就随时存在爆发的可能。

    小结: 1.内存优化1.一个消息一定只有一块内存使用 Job 聚合消息,Comet 指针引用. 2.一个用户的内存尽量放到栈上内存创建在对应的用户 Goroutine(Go 程)中. 3.内存由自己控 ...

  3. Android与JS交互,json传参问题

    一.JS调用Android的方法 JS调用安卓的方法,并且传递的参数为json格式的字符串(JSONObject.toString()), 例如: var json = {"name&quo ...

  4. MongoDB安装成windows 服务

    观看本文之间,请先移步至下面纠正部分 之前按照MongoDB官网提供的安装方法一直出错 http://cn.docs.mongodb.org/master/tutorial/install-mongo ...

  5. jQuery的html()、text()和val()的使用和区别

    .html():读取和修改一个元素的HTML内容 .text():读取和修改一个元素的文本内容 .val():读取和修改一个表单元素的value字段值

  6. wangEditor编辑器控件里textarea的id不要用content

    头引用 <script type="text/javascript" src="js/jquery-1.10.2.min.js"></scri ...

  7. VAO和VBO

    我想大家都已经熟悉VBO了吧.在GL3.0时代的VBO大体还是处于最重要的地位,但是与此同时也出现了不少新的用法和辅助役,其中一个就是VAO.本文大致小记一下这两者的联系,帮助大家理解一下这个角色.— ...

  8. 经典卷积神经网络——AlexNet

    一.网络结构 AlexNet由5层卷积层和3层全连接层组成. 论文中是把网络放在两个GPU上进行,为了方便我们仅考虑一个GPU的情况. 上图中的输入是224×224224×224,不过经过计算(224 ...

  9. Git速成学习第三课:创建与合并分支

    本来第三课想记录一下远程仓库的创建与克隆0.0但是想了想还是不写了. 这里写一下分支管理中的创建与合并. Git速成学习笔记整理于廖雪峰老师的官网网站:https://www.liaoxuefeng. ...

  10. Spring 工程分层