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

如何在Ubuntu Linux上将Docusaurus设置为系统服务运行

问题原因

systemd默认运行环境的PATH变量不包含Node.js可执行文件的所在路径,同时默认使用root用户运行可能存在项目目录权限不匹配的问题,进而导致启动失败。

解决方案

步骤1:获取Node、npm的绝对路径

在终端执行以下两条命令,记录返回的路径:

which node
which npm

示例返回值:

  • node路径:/usr/bin/node
  • npm路径:/usr/bin/npm

步骤2:修改systemd服务配置

替换/etc/systemd/system/docusaurus.service的全部内容为以下配置,对应替换路径、用户参数即可:

[Unit]
Description=Docusaurus Documentation Service
After=network.target

[Service]
Type=simple
# 替换为运行项目的用户,推荐使用非root用户如www-data
User=www-data
Group=www-data
WorkingDirectory=/var/www/citro-docs-2
# 替换为步骤1获取的npm绝对路径
ExecStart=/usr/bin/npm run serve
# 替换为Node.js可执行文件所在的目录,添加到PATH环境变量
Environment="PATH=/usr/bin"
# 配置异常自动重启
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

如果要直接调用js文件启动,可将ExecStart替换为以下内容,对应替换node绝对路径即可:

ExecStart=/usr/bin/node node_modules/@docusaurus/core/bin/docusaurus.mjs serve

步骤3:重启服务验证

执行以下命令使配置生效并启动服务:

  • 重载systemd配置:sudo systemctl daemon-reload
  • 启动服务:sudo systemctl start docusaurus.service
  • 设置开机自启:sudo systemctl enable docusaurus.service
  • 查看运行状态:sudo systemctl status docusaurus.service

如果启动仍异常,可执行sudo journalctl -u docusaurus.service -f查看实时运行日志排查具体问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:36:00