在 ubuntu 服务器上永远运行 http-server

在 ubuntu 服务器上永远运行 http-server

我有一个ubuntu服务器。我在其中传输了一些包含 js 和 html 代码的文件。

我使用node.js 中的http-server 来启动Web 服务器,以便我可以在服务器上显示html 页面。

我使用了 nohup,这样即使我断开连接或关闭系统,它也可以保持运行。

这是我使用的命令:

nohup http-server -p 8000 -a 10.4.145.182 & 

现在,这允许我可视化 10.4.145.182:8000 上的文件,但我注意到一段时间后服务器出现故障,人们无法在浏览器中访问该 ip 上的 html 页面。

我认为 nohup 是用于在后台运行的东西,即使人们关闭了系统或从服务器注销。

所以我在这里询问了一下,有人建议使用 pm2。所以安装了它。

根据使用 pm2 的建议,我安装了最新版本的节点,然后使用 pm2 启动服务。

它说 http-server 的服务已启动,但是当我在浏览器上使用端口 8000 访问 ip 时,它没有打开。

这是我在包含 html 和 d3 文件的目录中运行的命令。

$ pm2 start $(which http-server) -p 8000  

这是 pm2 的 shell 中的输出

在此输入图像描述

如何让服务器永远运行而不停止?pm2 出了什么问题?

答案1

如果你不关心后果,你只想做这样的事情......

#!/bin/bash

while sleep 5; do
    http-server -p 8000 -a 10.4.145.182
    wait 
done 

然后给脚本命名,赋予它执行权限,这样当你不希望“服务器”不断重新启动时,你可以杀死脚本。理论上它只会在结束时重新启动服务器。

这只会回答您的问题,但使用评论中建议的 systemd 单元会好得多。

以下是 systemd 自动重启单元的一些示例: https://singlebrook.com/2017/10/23/auto-restart-crashed-service-systemd/

相关内容