Proxmox服务器中Ubuntu LXC容器的Cron服务异常,提示资源暂时不可用
Proxmox服务器中Ubuntu LXC容器的Cron服务异常,提示资源暂时不可用
看起来你碰到了Cron服务的PID锁文件冲突问题——明明手动杀死进程、删除锁文件,甚至重装了Cron,还是反复出现无法锁定/var/run/crond.pid的错误,这大概率是因为进程被系统自动重启了,或者你用了错误的方式停止服务。我来帮你梳理解决办法:
问题复现(根据你的操作记录)
你作为root用户执行以下操作后问题依旧:
- 执行
cron -l时收到错误:cron: can't lock /var/run/crond.pid, otherpid may be 21952: Resource temporarily unavailable - 查看PID文件确认存在:
ls -l /var/run/crond.pid显示该文件属于root - 发现对应PID的Cron进程正在运行:
ps -ef | grep cron返回root 21952 1 0 13:44 ? 00:00:00 /usr/sbin/cron -f - 手动杀死进程、删除PID文件、重装Cron、重启服务后,再次执行
cron -l仍报错,新PID为21982,PID文件再次生成
核心原因
Ubuntu系统中Cron通常由systemd托管,你手动kill进程后,systemd会自动重启Cron服务,导致你刚删除PID文件,服务又立刻生成了新的,所以冲突一直存在。
正确的解决步骤
- 用systemd命令停止Cron服务(这是最可靠的停止方式,避免自动重启):
systemctl stop cron - 检查是否还有残留的Cron进程:
如果还有未终止的进程,用ps -ef | grep cronkill -9 <pid>强制杀死(把<pid>换成实际的进程ID) - 删除PID锁文件:
rm -f /var/run/crond.pid - 重新启动Cron服务:
systemctl start cron - 验证服务状态:
确认输出显示服务处于systemctl status cronactive (running)状态 - 再次尝试查看定时任务:
这次应该不会再出现锁文件冲突的错误了cron -l
额外排查点(如果上述步骤无效)
- 检查
/var/run目录的挂载情况:执行mount | grep /var/run,确认是tmpfs挂载(正常情况)且root有读写权限 - 检查Cron配置文件:查看
/etc/default/cron,确认PIDFILE路径为/var/run/crond.pid,没有被错误修改 - 重启LXC容器:如果上述操作都无效,尝试重启整个LXC容器,彻底清理残留进程和临时文件
备注:内容来源于stack exchange,提问作者David Portabella
相关产品推荐
相关产品推荐

