【发布时间】:2011-11-04 01:56:36
【问题描述】:
我正在尝试编写一个 bash 脚本来做一些事情,启动一个进程,等待该进程说它准备好了,然后在该进程继续运行的同时做更多的事情。我遇到的问题是找到一种方法来等待该进程准备好再继续,并允许它继续运行。
在我的具体情况下,我正在尝试建立一个 PPP 连接。在运行下一个命令之前,我需要等到它已连接。如果 PPP 连接失败,我也想停止脚本。 pppd 打印到标准输出。
在伪代码中我想做的是:
[some stuff]
echo START
[set up the ppp connection]
pppd <options> /dev/ttyUSB0
while 1
if output of pppd contains "Script /etc/ppp/ipv6-up finished (pid ####), status = 0x0"
break
if output of pppd contains "Sending requests timed out"
exit 1
[more stuff, and pppd continues to run]
echo CONTINUING
关于如何做到这一点的任何想法?
【问题讨论】:
-
per pppd man page 'Diagnostics 使用工具 LOG_DAEMON 将消息发送到 syslog 守护程序。 ...有关 syslog 守护进程将在何处写入消息的详细信息,请参阅 syslog(8) 文档。在大多数系统上,syslog 守护程序使用 /etc/syslog.conf 文件来指定 syslog 消息的目的地。您可能需要编辑该文件以适应。 .... 您是否看到系统日志中出现了什么样的消息?您应该能够让您的 while 循环扫描文件,寻找最新的消息。祝你好运。
标签: bash