Ubuntu编写开机启动脚本
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编写开机启动脚本的更多相关文章
- ubuntu设置开机启动脚本
rc.local脚本 rc.local脚本是一个ubuntu开机后会自动执行的脚本,我们可以在该脚本内添加命令行指令.该脚本位于/etc/路径下,需要root权限才能修改. 该脚本具体格式如下: #! ...
- Ubuntu编写开机自启动脚本(转载)
From:http://blog.csdn.net/marujunyy/article/details/8466255 1.首先编写一个简单的shell脚本test.sh #! /bin/bash e ...
- 为 Android 8.0 添加开机启动脚本【转】
本文转载自:https://zhuanlan.zhihu.com/p/32868074 本人对于 SELinux for Android 理解不深,下文中的各文件及安全规则虽都是我所编写,但也是一边查 ...
- 关于Ubuntu运行级别、开机启动脚本的说明
关于Ubuntu运行级别.开机启动脚本的说明 目录简介 1.1介绍Ubuntu下面的自启动脚本目录 1.2 Linux操作系统运行级别的概念 1.3关于操作系统自启脚本的启动顺序 1.4 Lin ...
- Ubuntu 16.04设置开机启动脚本的方法
需求:公司卡片机容量太小,只有100G,由于使用的人比较的多,开机使用后有时候就会出现磁盘空间占满数据写不进去的情况,影响工作进度,而且每次使用完都得关掉卡片机,所以就有必要写个清理磁盘的脚本,当卡片 ...
- Ubuntu 14.04设置开机启动脚本的方法
rc.local脚本 rc.local脚本是一个ubuntu开机后会自动执行的脚本,我们可以在该脚本内添加命令行指令.该脚本位于/etc/路径下,需要root权限才能修改. 该脚本具体格式如下: #! ...
- [转]Ubuntu下添加开机启动脚本
作者: 王恒 发表于 2012年 11月 5日 1.方法一,编辑rc.loacl脚本 Ubuntu开机之后会执行/etc/rc.local文件中的脚本, 所以我们可以直接在/etc/rc.local中 ...
- ubuntu系统自动配置开机启动脚本
以前一直搞的centos配置开机启动脚本,但是相同方法用在ubuntu系统上就不管用了,非常伤脑筋. 非常感谢 https://www.linuxidc.com/Linux/2017-09/1471 ...
- Ubuntu 18.04 设置开机启动脚本 rc.local systemd
ubuntu18.04不再使用initd管理系统,改用systemd. ubuntu-18.04不能像ubuntu14一样通过编辑rc.local来设置开机启动脚本,通过下列简单设置后,可以使rc.l ...
随机推荐
- pwn学习日记Day15 《程序员的自我修养》读书笔记
程序编译链接过程: 1.调用cc1程序,这个程序实际上就是GCC的C语言编译器,它将"hello.c"编译成一个临时的汇编文件"/tmp/ccUhtGSB.s" ...
- Win10 更新出现问题,建议完全重置系统
语言包引起问题. 文章来源:刘俊涛的博客 欢迎关注,有问题一起学习欢迎留言.评论
- JMeter-jp@gc - PerfMon Metrics Collector-CPU监控工具的配置及使用(win版本)
服务器端放这个 如果端口号被占用,默认报这个错: 如果默认的4444端口被占用的修改: C:\Users\Administrator>CD E:\E:\apache-jmeter-4.0\Ser ...
- linux下编辑VI窗口插入与编辑命令
前言 在嵌入式linux开发中,进行需要修改一下配置文件之类的,必须使用vi,因此,熟悉 vi 的一些基本操作,有助于提高工作效率. 一,模式 vi编辑器有3种模式:命令模式.输入模式.末行模式.掌握 ...
- smarty 模板几个例子(变量调节器)
一.assign和display方法的使用以及几个变量调节器 header("content-type:text/html;charset=utf-8");//加载Smarty引擎 ...
- mfc判断当前程序是否正在运行
HANDLE hMutex = CreateMutex(NULL,TRUE,_T("appName")); if(hMutex) { if(ERROR_ALREADY_EXISTS ...
- 升级系统中的java到1.8版本
(1).安装或升级java,并配置环境变量 注意:此处分为yum安装与rpm安装,区别在于yum安装省事但配置麻烦,rpm安装麻烦但配置省事. 1)yum安装 在安装前可以使用yum list ins ...
- ES6 javascript 实用开发方法技巧分享
定义变量/常量 ES6 中新增加了 let 和 const 两个命令,let 用于定义变量,const 用于定义常量 两个命令与原有的 var 命令所不同的地方在于,let, const 都是块级作用 ...
- 【FFMPEG】ffmpeg 中添加264支持
ffmpeg 中带有264的解码,没有编码,需要添加x264: 参考百度上的"windows_ffmpeg编译 " 文档 下载ffmpeg 代码合x264代码, ffmpeg 代码 ...
- WCF中事务处理
一.引言 今天来介绍下WCF对事务的支持. 二.WCF事务详解 2.1 事务概念与属性 首先,大家在学习数据库的时候就已经接触到事务这个概念了.所谓事务,它是一个操作序列,这些操作要么都执行,要么都不 ...