1

我有一个启动服务器脚本

startserver.sh

它将作为startserver.sh & 脚本需要运行一段时间的后台任务运行,直到它真正可以在运行状态下运行。server.log运行状态可以在准备好时写入日志文件。

所以我需要通过执行 bash cmd 知道服务器何时真正运行。如果没有,我需要等到 server.log 中显示 Running 状态。

我可以在 bash 中实现这一点吗?

4

1 回答 1

0

try something like this

mkfifo my_fifo
tail -f server.log >my_fifo &
tail_pid=$!
perl -ne '/pattern/&&exit' <my_fifo
kill $tail_pid
rm my_fifo

EDIT : perl command can be replaced with

grep -l 'pattern' <my_fifo >/dev/null

or if grep support this option

grep -q 'pattern' <my_fifo
于 2012-07-11T08:01:55.777 回答