文件更改时自动重启服务器

Automatically restart server on file change

我想要 运行 一个简单的 http 服务器(一个阻塞命令)并让它在指定的文件在 Linux 上更改时自动重启。 像这样:

hotreload -w src/ -w index.html simple-http-server

每当目录 src 或文件 index.html 更改时重新启动命令。

linux有这样的命令吗?我只找到了 npm 的扩展和非常低的级别 inotify API.

cargo watch 实际上是 Rust 构建工具 cargo 的插件,但它可以监视任何文件以及 运行 shell 命令:

cargo watch -w src/ -w index.html -s "./start_server.sh &"

start_server.sh 脚本应包含如下内容:

kill $(pidof simple-http-server) # kill any running instances to free up port
simple-http-server

因为当服务器仍在后台 运行ning 时,新实例将无法访问该端口。

这将 运行 使用 -s "…" 指定的命令,并会在使用 -w 监视的任何文件或目录发生更改时重新 运行 它。