首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Linux (Ubuntu)上启动Docusaurus作为服务

如何在Linux (Ubuntu)上启动Docusaurus作为服务
EN

Stack Overflow用户
提问于 2021-08-25 13:37:54
回答 1查看 449关注 0票数 0

嗨,伙计们,我试着启动Docusaurus V2,作为一种在上的服务。目前,我有一个脚本在我的文档龙文件夹作为一个临时的解决方案。当我用./start.sh启动它时,它会工作。

/var/www/citro-docs-2/start.sh

代码语言:javascript
复制
#!/bin/bash

npm run serve

我试着创建这样的服务:

/etc/systemd/system/docusaurus.service

代码语言:javascript
复制
[Unit]
Description=Docusaurus Service

[Service]
ExecStart=/var/www/citro-docs-2/start.sh
WorkingDirectory=/var/www/citro-docs-2

[Install]
WantedBy=multi-user.target

但是,当我用sudo systemctl start docusaurus.service启动并检查状态时,我会得到以下错误:

代码语言:javascript
复制
● docusaurus.service - Docusaurus Service
     Loaded: loaded (/etc/systemd/system/docusaurus.service; disabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Wed 2021-08-25 11:53:20 UTC; 4s ago
    Process: 3494 ExecStart=/var/www/citro-docs-2/start.sh (code=exited, status=1/FAILURE)
   Main PID: 3494 (code=exited, status=1/FAILURE)

Aug 25 11:53:20 citro-docs2 start.sh[3521]:     at require (node:internal/modules/cjs/helpers:94:18)
Aug 25 11:53:20 citro-docs2 start.sh[3521]:     at Object.<anonymous> (/var/www/citro-docs-2/node_modules/@docusaurus/c>
Aug 25 11:53:20 citro-docs2 start.sh[3521]:     at Module._compile (node:internal/modules/cjs/loader:1101:14)
Aug 25 11:53:20 citro-docs2 start.sh[3521]:     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153>
Aug 25 11:53:20 citro-docs2 start.sh[3521]:     at Module.load (node:internal/modules/cjs/loader:981:32)
Aug 25 11:53:20 citro-docs2 start.sh[3521]:     at Function.Module._load (node:internal/modules/cjs/loader:822:12)
Aug 25 11:53:20 citro-docs2 start.sh[3521]:     at Function.executeUserEntryPoint [as runMain] (node:internal/modules/r>
Aug 25 11:53:20 citro-docs2 start.sh[3521]:     at node:internal/main/run_main_module:17:47
Aug 25 11:53:20 citro-docs2 systemd[1]: docusaurus.service: Main process exited, code=exited, status=1/FAILURE
Aug 25 11:53:20 citro-docs2 systemd[1]: docusaurus.service: Failed with result 'exit-code'.

我找到了一个可以直接启动.js文件的解决方案:如何将node.js应用程序作为后台服务运行?,但我不知道这对文档库是否也是可能的。至少我不知道该启动哪个.js文件。如果有人能帮忙那就太棒了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-25 14:20:06

是的,可以在Ubuntu上将Docusaurus作为服务运行。值得一提的是,您在这里所做的工作对于Node.js应用程序来说是非常正常的。毕竟,如果不将Node.js应用程序作为服务运行,那么一旦关闭启动应用程序的外壳,该服务就会停止运行。

然而,似乎大多数人都不会在Ubuntu上运行Docusaurus,因为它“只是一个静态站点”,而静态站点实际上并不需要一个完整的服务器来运行。例如,您可以使用利用GitHub页面运行文档站点

尽管如此,文档龙只是一个Node.js应用程序。它类似于所有其他Node.js应用程序,如果您愿意的话,您当然可以在Ubuntu中运行它。

看看PM2上的文档。

我将您的应用程序作为服务启动的方式是:

  1. 在您的Ubuntu服务器上安装Node.js (如果它尚未安装)
  2. 通过pm2在服务器上安装npm install -g pm2
  3. 导航到应用程序的目录并运行npm install来安装应用程序的依赖项。
  4. 现在您可以运行pm2 start /var/www/citro-docs-2/start.sh --name myDocsSite

您的Docus龙应用程序现在应该正在运行。要阻止它,您可以运行pm2 stop myDocsSite

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68923998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档