Linux定时执行脚本能重启什么服务器,定时重启脚本命令详解

linux定时执行脚本重启服务器,最常用的方案是crontab配合systemd或init.d服务管理脚本,核心就是先写一个健壮的重启脚本,再用cron按计划触发,整个过程半小时能搞定。这篇文章不讲虚的,直接给你可落地的脚本模板、操作命令和避坑点。

linux定时重启服务器的脚本怎么写

解决”怎么定时”之前,先解决”怎么重启”,很多人在这一步翻车:直接把systemctl restart nginx写进crontab,结果服务没起来,原因多半是脚本里缺少环境变量或路径写死。

先确认你的服务跑在什么进程管理下

现在主流Linux发行版(CentOS 7+、Ubuntu 16+、Debian 8+)都用systemd,用systemctl restart 服务名,老一点的CentOS 6或Ubuntu 14用init.d,用service 服务名 restart

不确定就执行这条命令看结果:

ps -p 1 -o comm=

输出systemd就是新方案,输出init就是旧方案,行业共识认为,2026年还在用init.d的生产环境已经相当少了,遇到老系统建议先迁移到systemd再谈定时重启。

三个拿来即用的重启脚本模板

以常见的三个服务为例,脚本放在

Linux定时执行脚本能重启什么服务器,定时重启脚本命令详解

/usr/local/bin/下,记得加执行权限chmod +x

重启nginx的脚本(reload方式,不中断连接):

#!/bin/bash
# /usr/local/bin/restart_nginx.sh
nginx -t > /tmp/nginx_check.log 2>&1
if [ $? -eq 0 ]; then
    systemctl reload nginx
    echo "$(date '+%Y-%m-%d %H:%M:%S') nginx reload ok" >> /var/log/nginx_reload.log
else
    echo "$(date '+%Y-%m-%d %H:%M:%S') nginx config error, skip reload" >> /var/log/nginx_reload.log
fi

先做nginx -t配置检查,失败就不重载,防止把自己搞挂。

重启tomcat的脚本(优雅停机,等JVM退出):

#!/bin/bash
# /usr/local/bin/restart_tomcat.sh
CATALINA_HOME=/opt/tomcat
PID=$(ps -ef | grep catalina | grep -v grep | awk '{print $2}')
if [ -n "$PID" ]; then
    $CATALINA_HOME/bin/shutdown.sh
    # 最多等60秒,超时强杀
    for i in $(seq 1 12); do
        sleep 5
        if ! kill -0 "$PID" 2>/dev/null; then
            break
        fi
    done
    kill -9 "$PID" 2>/dev/null
fi
$CATALINA_HOME/bin/startup.sh

tomcat直接kill -9会导致未落盘的session丢失,多数情况下先走shutdown.sh等5秒,不行再强杀。

Linux定时执行脚本能重启什么服务器,定时重启脚本命令详解

重启MySQL的脚本(依赖systemd,带健康检查):

#!/bin/bash
# /usr/local/bin/restart_mysql.sh
systemctl restart mysqld
# 循环等端口起来
for i in $(seq 1 30); do
    if mysqladmin ping -uroot -p'你的密码' --silent 2>/dev/null; then
        echo "$(date) mysql restart ok" >> /var/log/mysql_restart.log
        exit 0
    fi
    sleep 2
done
echo "$(date) mysql restart timeout" >> /var/log/mysql_restart.log
exit 1

把脚本挂进crontab,就这两行命令

crontab -e

然后写入一行:

30 2    /usr/local/bin/restart_nginx.sh

这行含义是每天凌晨2:30执行一次nginx重启脚本,五个位置依次是:分、时、日、月、周,常用写法:

  • 30 2 :每天2:30
  • 0 /6 :每6小时执行一次
  • 30 2 0:每周日凌晨2:30
  • 15 3 1 :每月1日凌晨3:15

保存后执行crontab -l确认写进去了,再手动跑一遍脚本看日志,完事。

Linux定时执行脚本能重启什么服务器,定时重启脚本命令详解

crontab定时重启tomcat和nginx有什么区别

同样是”重启”,tomcat和nginx的脾气完全不同,搞清楚区别,你才知道什么频率合适、要不要reload替代restart。

tomcat重启要”慢”JVM的优雅停机

tomcat是Java应用服务器,每个请求占用一个线程,JVM里有堆内存、线程池、连接池,重启意味着销毁整个JVM进程再重新拉起,这个过程中:

  • 新请求会连接失败,直到端口重新监听
  • 未完成的业务会被中断
  • 启动阶段要加载类、初始化连接池,耗时通常在10秒到1分钟不等

所以tomcat的定时重启不能太频繁,一天一次在低峰期(比如凌晨2-3点)就够,如果每天都要重启tomcat才能稳住,大概率是内存泄漏,该去调JVM参数而不是靠定时任务续命。

nginx重启可以”快”reload机制

nginx是事件驱动模型,支持reload平滑重载配置,reload不中断连接,master进程重新加载配置、fork新的worker,旧的worker处理完手头请求就退出,整个过程对用户几乎无感知。

所以nginx适合用reload代替restart,定时任务崩溃的风险更低,也不用挑凌晨。

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/818526.html

(0)
上一篇 2026年9月14日 01:32
下一篇 2026年9月14日 01:37

相关推荐

  • PHP怎么调用SSL证书,PHP如何获取SSL证书信息?

    PHP通过内置的OpenSSL扩展库,能够高效地读取、解析及验证SSL证书,这不仅保障了数据传输的机密性,更是实现API双向认证、数字签名校验及证书有效期监控的核心技术手段, 在现代Web开发中,SSL证书已不再是单纯的服务器配置项,PHP应用程序在处理敏感数据交互、对接第三方支付网关或构建微服务架构时,往往需……

    2026年2月25日
    01945
  • 憨木小镇的游戏服务器id是什么,憨木小镇服务器id怎么查

    憨木小镇的游戏服务器id并没有一个全网统一的固定值,它随版本和分区不同而变化,最稳妥的获取方式是查看官方群公告或启动器列表,很多玩家在搜索栏里输入”憨木小镇服务器id”时,实际是想找一串能直接添加服务器的数字或字母组合,但憨木小镇不是单机存档,而是一个由玩家社区搭建的联机服务器群,所以它的ID会因Java版、基……

    2026年8月25日
    0514
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • 移动宽带售后号码是多少?移动宽带客服电话查询

    移动宽带售后号码是解决家庭及企业网络故障最直接、最高效的渠道,但单纯拨打号码往往只能获得标准流程指引,真正的核心解决策略在于“精准报修 + 智能诊断 + 云网协同”,对于绝大多数网络中断或卡顿问题,直接拨打官方客服热线 10086 是基础,但结合现代云技术进行前置排查,能大幅缩短故障处理时长,提升网络稳定性,高……

    2026年4月22日
    09324
  • 服务器的2核4g代表了什么阶级,2核4g服务器够用吗

    2核4G服务器是云服务器配置中的“入门级”,相当于工薪阶层,日常轻量业务够用,但遇到高并发或复杂计算就会暴露短板,属于性价比最高的基础配置,绝非“顶配”但也绝非“鸡肋”,2核4G服务器,到底属于什么“阶级”?在服务器配置的层级里,2核4G是门槛最低的“实战配置”,如果你把服务器比作员工,2核就是两个普通劳动力……

    2026年8月11日
    0792

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(3条)

  • 大果8748的头像
    大果8748 2026年9月14日 01:36

    这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于重启的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!

    • 山山463的头像
      山山463 2026年9月14日 01:37

      @大果8748读了这篇文章,我深有感触。作者对重启的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!

  • 雪雪1852的头像
    雪雪1852 2026年9月14日 01:37

    读了这篇文章,我深有感触。作者对重启的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!