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

Sidekiq 6仅在进入Web控制台或执行ps命令时才轮询问题求助

问题根因

你遇到的是Ubuntu 20.04系统下systemd用户模式的默认行为导致的问题:默认情况下用户退出所有登录会话后,systemd会暂停该用户的所有服务进程进入休眠状态,直到用户再次登录或者有用户相关的进程被触发唤醒。你访问Sidekiq web控制台、执行ps命令都会触发用户进程唤醒,所以Sidekiq会恢复运行。

排查步骤

  • 先确认systemd用户模式的linger配置,执行命令:
    loginctl show-user <替换为你的服务器用户名> | grep Linger
    如果输出为Linger=no,即可确认是该配置导致的问题。
  • 当Sidekiq停止轮询时,不要执行触发恢复的操作,直接执行 systemctl --user status sidekiq 查看服务状态,确认服务显示active (running)但无任务处理日志。
  • 查看系统日志确认Sidekiq无崩溃、OOM类错误:
    grep sidekiq /var/log/syslog

解决方案

1. 开启systemd用户linger

执行以下命令开启指定用户的linger,让用户的systemd实例在用户退出登录后依然保持正常运行:

loginctl enable-linger <替换为你的服务器用户名>

执行后验证配置生效:loginctl show-user <替换为你的服务器用户名> | grep Linger,输出为Linger=yes即可。

2. 调整Sidekiq的systemd配置

在你现有的~/.config/systemd/user/sidekiq.service的[Service]段新增NotifyAccess=all配置,避免systemd误判Sidekiq的上报状态:

[Service]
# 原有配置全部保留,新增以下行
NotifyAccess=all

修改后执行命令让配置生效:

systemctl --user daemon-reload
systemctl --user restart sidekiq

3. 验证修复效果

退出所有SSH登录会话,等待10分钟以上后新增Sidekiq任务,确认不需要登录服务器或访问web控制台,Sidekiq也能正常处理任务即可。

内容的提问来源于stack exchange,提问作者kevinluo201

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:39:02