You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器中Cron执行MySQL重启脚本失败问题求助

Docker容器中Cron执行MySQL重启脚本失败问题求助

各位好,我碰到一个头疼的问题,想请教下大家:我有一个基于Ubuntu系统的Docker容器,里面装了MySQL,现在需要每天自动重启一次MySQL,本来打算用cron来实现,但遇到了奇怪的问题——手动在容器CLI里运行重启脚本完全正常,但通过cron执行就报错找不到service命令。

我的环境与背景

  • Docker容器:Ubuntu系统,已安装MySQL
  • 需求:每天自动重启MySQL服务
  • 重启脚本路径:/usr/local/bin/mysqlRestart

重启脚本内容

#!/bin/bash

echo "Stopping MySQL"

service mysql stop

sleep 15s

echo "Starting MySQL"

service mysql start

sleep 10s

echo "MySql Restarted"

service mysql status

sleep 10s

手动执行结果(完全正常)

我在容器的命令行里执行以下命令:

./mysqlRestart >>/var/log/mysqlRestart 2>&1

日志输出显示MySQL能正常停止并重启:

Stopping MySQL
Stopping MySQL database server mysqld ...done.
Starting MySQL
Starting MySQL database server mysqld su: warning: cannot change directory to /nonexistent: No such file or directory ...done.
MySql Restarted
/usr/bin/mysqladmin Ver 8.0.30-0ubuntu0.20.04.2 for Linux on x86_64 ((Ubuntu)) Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Server version 8.0.30-0ubuntu0.20.04.2 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: 11 sec
Threads: 2 Questions: 8 Slow queries: 0 Opens: 119 Flush tables: 3 Open tables: 38 Queries per second avg: 0.727

Cron执行结果(报错)

我先设置了一个测试用的定时任务(每5分钟执行一次),在crontab -e里添加的内容:

*/5 * * * * bash /usr/local/bin/mysqlRestart >>/var/log/mysqlRestart 2>&1

但执行后日志里全是找不到命令的报错:

Stopping MySQL /usr/local/bin/mysqlRestart: line 4: service: command not found
Starting MySQL /usr/local/bin/mysqlRestart: line 7: service: command not found
MySql Restarted /usr/local/bin/mysqlRestart: line 10: service: command not found

有没有大佬知道为什么手动执行正常,cron执行就找不到service命令?应该怎么解决这个问题?

备注:内容来源于stack exchange,提问作者James Tavendale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 10:58:09