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

Windows WSL执行systemctl restart chatwoot.target不生效问题咨询

问题根源

报错核心为当前Linux环境未使用systemd作为PID 1的初始化系统,Chatwoot官方Linux虚拟机部署方案默认适配带systemd的主流发行版(Ubuntu 20.04+、Debian 11+、CentOS 8+等),常见触发场景包括:WSL1环境、未开启systemd的WSL2环境、未开启systemd的Docker容器、Alpine/Gentoo等默认使用其他init系统的发行版。

分步解决方案

场景1:WSL2环境部署

  • 关闭所有WSL实例,在Windows终端执行wsl --shutdown
  • 打开对应WSL发行版,编辑/etc/wsl.conf文件,添加如下配置:

[boot]
systemd=true

  • 保存文件后重启WSL实例,执行ps 1验证首进程为systemd后,重新执行systemctl restart chatwoot.target即可

场景2:Docker容器内部署

不建议在容器内强制启用systemd管理服务,直接改用Chatwoot官方Docker Compose部署方案即可。

场景3:使用默认无systemd的发行版(如Alpine、Gentoo)

  • 编写对应init系统的服务脚本,以Alpine使用的OpenRC为例,需要分别编写chatwoot-web、chatwoot-worker、chatwoot-cron三个服务脚本放入/etc/init.d/目录
  • 给脚本赋予可执行权限后,执行对应启动命令:
    • rc-service chatwoot-web start
    • rc-service chatwoot-worker start
    • rc-service chatwoot-cron start
  • 如需配置开机自启,执行rc-update add 服务名 default将三个服务分别加入自启列表即可

场景4:发行版预装systemd但未默认启用

先执行ls /sbin/init | grep systemd确认存在systemd二进制文件,修改grub启动配置,删除init=指定其他init程序的参数,重启系统后再执行systemctl命令即可。

临时测试方案

如果仅需临时验证Chatwoot运行状态,可跳过systemd直接手动启动服务:
进入Chatwoot安装目录,分别执行以下命令:

  • 启动web服务:bundle exec rails s -p 3000 -e production
  • 启动异步任务worker:bundle exec sidekiq -C config/sidekiq.yml -e production
  • 加载定时任务:bundle exec whenever --update-crontab

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:54:01