linux开机自启动方法

这篇具有很好参考价值的文章主要介绍了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
#    fi
    if ! kill -0 ${PID} 2>/dev/null ;then
        echo "${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 &
    else
        echo "Failed to start '${APP_ID}',because it is running (pid:${PID})."
    fi 
    
}

stop(){
    if  kill -0 ${PID} 2>/dev/null ;then
        kill ${PID}
        echo "killing ${APP_ID}"
    else
        echo "Failed to stop '${APP_ID}',It is not running."
    fi
}

status(){
    if kill -0 ${PID} 2>/dev/null ;then
        echo "${APP_ID} (pid:${PID}) is running."
    else
        echo "${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=videoFusionApi

After=network.target

[Service]

Environment="JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64"

Type=forking

ExecStart=/bin/sh /xx/xx/xx/xx/rsbc.sh start

ExecStop=/bin/sh /xxx/xx/xx/xx/rsbc.sh stop

PrivateTmp=true

[Install]

WantedBy=multi-user.target

以上两种方法看实际业务情况而定用那种。文章来源地址https://www.toymoban.com/news/detail-802295.html

到了这里,关于linux开机自启动方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在有无图形化界面 情境下的 Linux 开机自启动文件配置 / superivisor配置 出现:提示“无法连接到X服务器:0.0“(cannot connect to X server :0.0)

    近期学弟学妹正在做校电赛,不太会配置开机自启动文件,以下是一个记录。 有问题可以发邮件到邮箱 layraliu@foxmail.com Supervisor 是一个客户端/服务器系统,允许用户控制类 UNIX 操作系统上的多个进程。它可以很方便的监听、启动、停止、重启一个或多个进程。 注意:Superv

    2024年04月25日
    浏览(40)
  • windows服务器下java程序健康检测及假死崩溃后自动重启应用、开机自动启动

    前两天由于项目需要,一个windows上的批处理任务(kitchen.bat),需要接到mq的消息通知后执行,为了快速实现这里我们通过springboot写了一个jar程序,用于接收mq的消息,并调用bat文件。 调用windows的批处理脚本bat,并支持传参 可根据配置设置并发,同时消费多个mq消息调用多个

    2024年02月12日
    浏览(36)
  • windows系统服务器在不解锁屏幕不输入密码的前提下,电脑通电开机启动程序。

    在控制面板中找到“管理工具”中的 “任务计划程序”,打开“任务计划程序”窗口。如图:   双击打开任务计划程序,空白出右键创建基本任务,或者点击最右侧的创建基本任务。  输入名称,点击下一步。 先选择计算机启动时,后面会进行改动;点击下一步。 选择启动

    2024年02月04日
    浏览(36)
  • WindwosServer系统一些设置【网卡驱动修复】【安装UWP应用】【服务器管理取消开机自启动】

    这里以2022为例: 此教程只针对I219-V/LM网卡! 小知识: 当电脑没网时,将手机和电脑用USB数据线连接 打开设置; 搜索“USB网络共享”; 打开,在右边弹出提示,点‘是’; 即可连接网络 下载文件:I219-V/LM安装程序 (I219-V和LM通用,不用担心兼容问题) 下载之后不要运行

    2024年02月10日
    浏览(42)
  • 运维 | 查看 Linux 服务器 IP 地址

    大多数在操作 Linux 系统时,我们经常需要知道服务器的 IP 比便于后续的一系列操作,这时候有快速查看主机 IP 的命令行操作,能够有效的帮助我们 本章节主要记录一些常用查看服务器 IP 的命令,希望对大家有所帮助。 查看 Linux 服务器的 IP 地址的命令大体上有以下几种。

    2024年04月27日
    浏览(52)
  • frp-内网穿透部署-ubuntu22服务器-查看端口-结束进程-windows server-详细教程-开机启动

    FRP是一个开源、简洁易用,高性能的内网穿透和反向代理软件,支持tcp、upp、http、https等协议。 可以去官网下载最新的frp编译好的文件,本文采用frp_0.32.1_windows_amd64版本。也可以在csdn下载。 按下字母“i”键, 在最后一行添加 PermitRootLogin yes配置,最后esc退出编辑模式,再“

    2024年01月18日
    浏览(45)
  • 【运维】Linux 跨服务器复制文件文件夹

    如果是云服务 建议用内网ip scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来

    2024年02月08日
    浏览(46)
  • 【Linux 服务器运维】定时任务 crontab 详解 | 文末送书

    本文思维导图概述的主要内容: 1.1 什么是 crontab Crontab 是一个在 Unix 和 Linux 操作系统上 用于定时执行任务 的工具。它允许用户创建和管理计划任务,以便在特定的时间间隔或时间点自动运行命令或脚本。Crontab 是 cron table 的缩写, cron 指的是 Unix 系统中的一个后台进程,它

    2024年02月08日
    浏览(62)
  • 【Linux运维】shell脚本检查服务器内存和CPU利用率

    在管理服务器时候写了一个 shell脚本,在服务上实现每天凌晨3点查系统的指定文件夹下的容量大小,如果超过10G就要删除3天前的内容,还要时刻查询内存和cpu利用率,如果超过80%就要提示用户出现过载 将以上代码保存为一个.sh文件,然后通过crontab在每天凌晨3点运行即可:

    2024年02月09日
    浏览(48)
  • Linux本地部署1Panel服务器运维管理面板并实现公网访问

    1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器,包括主机监控、文件管理、数据库管理、容器管理等 下面我们介绍在Linux 本地安装1Panel 并结合cpolar 内网穿透工具实现远程访问1Panel 管理界面 执行如下命令一键安装 1Panel: 安

    2024年02月04日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包