【问题标题】:Automatically restart server on file change文件更改时自动重启服务器
【发布时间】:2019-12-08 21:47:13
【问题描述】:
我想运行一个 simple-http-server(一个阻塞命令)并让它在 Linux 上的指定文件更改时自动重启。
像这样的:
hotreload -w src/ -w index.html simple-http-server
每当目录src 或文件index.html 更改时重新启动命令。
linux 有这样的命令吗?我只找到了 npm 的扩展和非常低级别的 inotify API。
【问题讨论】:
标签:
linux
web-services
command
hot-reload
【解决方案1】:
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
因为当服务器仍在后台运行时,新实例将无法访问该端口。
这将运行-s "…" 指定的命令,并在-w 监视的任何文件或目录发生变化时重新运行它。