Bash启动脚本打开PPP然后执行延迟命令 - 如何?

时间:2011-06-29 16:48:21

标签: multithreading bash startup kde

我有一个我想在启动时运行的bash脚本(Kubuntu 11.04),它打开了我公司的VPN。 KDE中的VPN客户端不喜欢这个VPN,所以我需要手动完成。它打开一个ppp0连接,然后添加一个ip路由。这是问题:我需要运行pppd call命令,大约5秒后,添加ip route。我的命令很好,并且在两个不同的shell会话中分别运行这两个命令可以实现。我的问题是pppd call命令启动ppp0进程,除非我想终止该进程,否则我无法在启动时在同一脚本中运行ip route命令。

我可以:

(1)以某种方式解决这两个命令?

(2)写三个脚本;控制器脚本,pppd脚本和ip route脚本?

(3)这样做并不是完全愚蠢的吗?

1 个答案:

答案 0 :(得分:1)

你不能把pppd进程放到像

这样的背景中
function is_pppd_working {
    # do some test to check pppd is doing what it's meant to
}

function setup_route {
    # do your ip route stuff
}

pppd > somelogfile.log 2>&1 &
sleep 5
PPD_IS_WORKING=$(is_pppd_working)
if [ ${PPD_IS_WORKING} ]
then
    setup_route
else
    # uh oh!!
fi
相关问题