linux开机自启动方法

服务开机自启

docker 开机自启方法

容器没有自启 执行一下 docker update --restart=always NAMES[容器名称]

java 服务器开机自启方法

第一种:利用 rc.local 文件完成开机自启,vi /etc/rc.local

#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
# 这边键入需要启动的脚本
/home/xxx/xx/xx/auto-restart.sh 

auto-restart.sh 脚本模版

#!/bin/sh
#chkconfig: 2345 80 05
#description: 
#author: tonglh
#如果有mysql和redis 或者其他docker容器需要关联重启的可放一起。
#echo "等待Mysql和Redis启动..."
#sleep 90s
#echo "启动nginx"
#/usr/local/nginx/sbin/nginx
#sleep 2s
# java服务路径
cd /xx/xx/xxx-xx/xxx/xx 
echo "启动xxxx服务"
sh rsbc.sh stop
sleep 10s
sh rsbc.sh start
echo "xxxx startup"
tail -f /dev/null
exit $?

rsbc.sh 脚本模版可根据需要进行调整这边给出常见脚本例子

#!/bin/sh# shell directory
SH_DIR=$(cd "$(dirname "$0")"; pwd)
cd ${SH_DIR}ACTIVE=$2
ACTIVE=${ACTIVE:=prod}#[ ! -e "${JAVA_HOME}/bin/java" ]
#export JAVA_HOME
#JAVA="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/bin/java"
JAVA=${JAVA_HOME}/bin/java################# user options ###############
APP_ID="XXXXX-api"
JAR_FILE_NAME="api.jar"
COMMON_LOG_FILE="./startup.log"
USER_OPT="-Dfile.encoding=UTF-8"
################# user options ################################ java options ###############
JAVA_OPT="-server -Xmx1024m -Xms512m"
JAVA_OPT="${JAVA_OPT} -Xmn128m"
# jetty suggestion
JAVA_OPT="${JAVA_OPT} -verbose:gc"
#JAVA_OPT="${JAVA_OPT} -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintGCDetails"
JAVA_OPT="${JAVA_OPT} -Xloggc:./logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=20m"
JAVA_OPT="${JAVA_OPT} -XX:+PrintTenuringDistribution"
JAVA_OPT="${JAVA_OPT} -XX:+PrintCommandLineFlags"
JAVA_OPT="${JAVA_OPT} -XX:+DisableExplicitGC"
JAVA_OPT="${JAVA_OPT} -XX:+UseConcMarkSweepGC"
JAVA_OPT="${JAVA_OPT} -XX:CMSInitiatingOccupancyFraction=80"
# r&d suggestion
JAVA_OPT="${JAVA_OPT} -XX:HeapDumpPath=./logs/dumpfile.hprof"
JAVA_OPT="${JAVA_OPT} -XX:+HeapDumpOnOutOfMemoryError"
# other like rocketmq
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
#JAVA_OPT="${JAVA_OPT} -XX:+AlwaysPreTouch"
JAVA_OPT="${JAVA_OPT} -XX:MaxDirectMemorySize=15g"
JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages -XX:-UseBiasedLocking"
# r&d
################# java options ################################ pid  ###############
#ONE JAR MORE INSTANCE
PID=$(ps -ef|grep "\\-DappId=${APP_ID}" | grep -v grep|awk '{print $2}')
#ONE JAR ONE INSTANCE
#PID=$(fuser ${JAR_FILE_NAME} 2>/dev/null | xargs echo)
################# pid  ###############start(){
#    if [ x"$1" = x ] ;then
#        echo "Failed to start '${APP_ID}', pls input db password encrypt key."
#        exit
#    fiif ! kill -0 ${PID} 2>/dev/null ;thenecho "${APP_ID} is starting! File is ${JAR_FILE_NAME}"nohup ${JAVA} ${JAVA_OPT} ${USER_OPT} -DappId=${APP_ID} -jar ${JAR_FILE_NAME} --spring.profiles.active=${ACTIVE} > ${COMMON_LOG_FILE}  2>&1 &elseecho "Failed to start '${APP_ID}',because it is running (pid:${PID})."fi }stop(){if  kill -0 ${PID} 2>/dev/null ;thenkill ${PID}echo "killing ${APP_ID}"elseecho "Failed to stop '${APP_ID}',It is not running."fi
}status(){if kill -0 ${PID} 2>/dev/null ;thenecho "${APP_ID} (pid:${PID}) is running."elseecho "${APP_ID} is not running."fi 
}case $1 in start)start;;stop)stop;;status)status;;*)echo "Usage: $0 start [ACTIVE]|stop|status"
esac

第二种:/etc/systemd/system/ 路径下面新建对应的xxx.service

# 开机自启
systemctl enable xxx.service# 开启服务
systemctl start xxx.service# 查询服务状态
systemctl status xxx.service

xxx.service例子

[Unit]Description=videoFusionApiAfter=network.target[Service]Environment="JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64"Type=forkingExecStart=/bin/sh /xx/xx/xx/xx/rsbc.sh startExecStop=/bin/sh /xxx/xx/xx/xx/rsbc.sh stopPrivateTmp=true[Install]WantedBy=multi-user.target

以上两种方法看实际业务情况而定用那种。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/631848.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

甜蜜而简洁——深入了解Pytest插件pytest-sugar

在日常的软件开发中,测试是确保代码质量的关键步骤之一。然而,对于测试报告的生成和测试结果的可读性,一直以来都是开发者关注的焦点。Pytest插件 pytest-sugar 以其清晰而美观的输出,为我们提供了一种愉悦的测试体验。本文将深入介绍 pytest-sugar 插件的基本用法和实际案…

css3 纯代码案例

css3 纯代码案例 前言渐变之美1.1 纯CSS3实现的渐变背景1.2 使用多重颜色和方向打造丰富渐变效果1.3 渐变色停留动画的巧妙运用 纯CSS图形绘制2.1 使用border属性制作三角形、梯形等形状伪类箭头图标2.2 利用transform创建旋转、缩放的图形 浮动的阴影敲代码css准备reset 样式复…

基于springboot+vue的图书个性化推荐系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

Jupyter Notebook五分钟基础速通

1 作用 常用于数据分析 2 安装 2.1 Anaconda 通过直接安装Anaconda,会自动安装Jupyter Notebook 2.2 命令行安装 ① 3.x版本 pip3 install --upgrade pip pip3 install jupyter ② 2.x版本 pip install --upgrade pip pip install jupyter 3 启动 cmd窗口下…

Web3去中心化存储:重新定义云服务

随着Web3技术的崭露头角,去中心化存储正在成为数字时代云服务的全新范式。传统的云服务依赖于中心化的数据存储架构,而Web3的去中心化存储则为用户带来了更安全、更隐私、更可靠的数据管理方式,重新定义了云服务的未来。 1.摒弃中心化的弊端 …

c# 学习笔记 - 异步编程

文章目录 1. 异步编程介绍1.1 简单介绍1.2 async/await 使用1.3 Task/Task<TResult> 对象 2. 样例2.1 迅速启动所有任务&#xff0c;仅当需要结果才等待任务执行2.2 使用 await 调用异步方法&#xff0c;即使这个异步方法内有 await 也不会同时执行回调和向下执行操作(必…

Kali在Vmware无法连接到网络,配置网络及解决办法

一.问题描述&#xff1a; 打开 Kali&#xff0c;无法连接到网络&#xff0c;虚拟机配置正常的。 尝试 ping 百度&#xff0c;出错&#xff1a; ping baidu.com 提示&#xff1a; ping: baidu.com: Temporary failure in name resolution二.解决办法&#xff1a; 1.首先在vmwa…

工作流功能

在小程序、公众号的开发过程中&#xff0c;开发者经常遇到以下场景&#xff1a; 接收来自微信的服务端回调消息&#xff0c;例如公众号事件推送、微信支付付款回调等&#xff1b;运行定时任务&#xff0c;例如每天 0 点进行数据清理、统计等&#xff1b;进行任务逻辑编排&…

手机常用的root方案

手机常用的root方案 xposed Magisk KernelSU SuperSU 这些都是用于手机Root的工具或框架&#xff0c;它们之间有一些区别&#xff1a; Xposed Framework&#xff1a;Xposed是一个适用于Android设备的框架&#xff0c;允许用户在不修改APK文件的情况下对系统进行定制。它通…

Base64编码原理解析

文章目录 一、Base64Base64编码的原理如下&#xff1a;以字符串"hello world"为例&#xff0c;它的ASCII码为&#xff08;下面&#x1f447;是ASCII码对照表&#xff09;&#xff1a;将这些ASCII码转换为二进制&#xff08;对照上表&#xff09;&#xff1a;将上述二…

Flink的KeyedProcessFunction基于Event Time和Process Time的定时器用法实例分析

FLink处理函数简介 在Flink底层&#xff0c;我们可以不定义任何具体的算子&#xff08;比如 map&#xff0c;filter&#xff0c;或者 window&#xff09;&#xff0c;而只是提炼出一个统一的【处理】&#xff08;process&#xff09;操作——它是所有转换算子的一个概括性的表…

一键式Excel分词统计工具:如何轻松打包Python脚本为EXE

一键式Excel分词统计工具&#xff1a;如何轻松打包Python脚本为EXE 写在最前面需求分析直接用Python打包为什么大&#xff1f;为什么要使用conda环境&#xff1f; 将Python脚本打包为一个独立的应用程序1. 编写Python脚本&#xff1a;初步功能实现2. 初步图形用户界面&#xff…

Spark基础学习--基础介绍

1. Spark基本介绍 1.1 定义 Spark是可以处理大规模数据的统一分布式计算引擎。 1.2 Spark与MapReduce的对比 在之前我们学习过MapReduce&#xff0c;同样作为大数据分布式计算引擎&#xff0c;究竟这两者有什么区别呢&#xff1f; 首先我们回顾一下MapReduce的架构&#xf…

字符串排序 sort(str.begin(),str.end(),greater<>())

给定一个整数 n&#xff0c;你可以将其中的数字以任意顺序重新排列&#xff0c;组成新的数字&#xff08;也可以不重排&#xff0c;保留原数字&#xff09;。 请问能否组合出 30 的倍数&#xff0c;如果可以&#xff0c;则输出满足条件的最大值&#xff0c;否则输出 −1。 例如…

CC工具箱使用指南:【三调名称转用地用海名称】

一、简介 三调地类和用地用海地类之间有点相似但并不一致。 在做规划时&#xff0c;拿到的三调&#xff0c;都需要将三调地类转换为用地用海地类&#xff0c;然后才能做后续的工作。 一般情况下&#xff0c;三调转用地用海存在【一对一&#xff0c;多对一和一对多】3种情况。…

JWT渗透姿势一篇通

文章前言 企业内部产品应用使用JWT作为用户的身份认证方式&#xff0c;在对应用评估时发现了新的关于JWT的会话安全带来的安全问题&#xff0c;后期再整理时又加入了之前遗留的部分JWT安全问题&#xff0c;至此汇总成一篇完整的JWT文章 简单介绍 JWT(JSON Web Token)是一种用…

直播间的秒杀狂热背后,猫眼电影如何接住10w+并发运营活动?

“倒数&#xff0c;5、4、3、2、1” “10万张&#xff01;” “20秒没了” 上周末&#xff0c;张家辉和导演马浴柯带着新电影《怒潮》上了疯狂小杨哥的直播间&#xff0c;人数一度冲破80万人。 这次直播&#xff0c;是猫眼电影为新电影《怒潮》准备的一次宣传活动。 随着小…

《设计模式的艺术》笔记 - 享元模式

介绍 享元模式运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象&#xff0c;而这些对象都很相似&#xff0c;状态变化很小&#xff0c;可以实现对象的多次复用。由于享元模式要求能够共享的对象必须是细粒度对象&#xff0c;因此它又称为轻量级模式&#xff…

洛谷P1161 开灯

这倒也是水题&#xff0c;我们可以建立一个数组&#xff0c;数组的下标就是编号&#xff0c;我们要注意的是浮点数乘法的结果要转化成整数&#xff0c;才能当做下标&#xff0c;因为题目给的是整数编号。 # include <stdio.h> int main() {int a[1000000] { 0 }, n, t,…

【linux】linux系统安装与更新软件

前言 linux系统安装软件有许多的方式&#xff0c;本文列举的是类似于windows从应用商店安装软件的方法。也是最常用最省事的方法。 但是呢linux系统是有许多发行版本的&#xff0c;不同版本的命令不同&#xff0c;但语法基本是一模一样。 概念插入 windows系统中&#xff0c…