有一些工具像 npm-run-all 允许持久进程在一个进程中并行运行的。我有兴趣和你一起 redis 和A node 服务器。
redis
node
不过,我正在寻找一种方法来运行两个并行,但只运行 结点 当 雷迪斯 过程是可验证的成功。
结点
雷迪斯
有什么unix/bash工具可以达到我想要的目的吗?
我可以从两个方面看到这一点:
选择1
一种工具 检查进程中的特定stdout 例如 雷迪斯 会写的 Ready to accept connections 对于stdout,该工具会将其作为正则表达式进行监视。当它接收到它时,一个内部事件将被触发,并且 结点 服务器将运行。
Ready to accept connections
选择2
一种工具 检查http连接是否可用/何时可用 对于特定的服务器,当它收到正确的运行状况检查响应时,将触发内部事件,然后 结点 服务器将运行。还需要超时。其缺点是,它只特定于在一致的本地端口上启动服务器和终结点的进程。
一个脚本如何响应 PING 命令?
PING
!/bin/bash X="`redis-cli ping`" echo ${X} while [ "${X}" != "PONG" ]; do echo "redis not yet ready" echo "${X}" sleep 50 X="`redis-cli ping`" done echo 'Lets start node'