我有一个我想在启动时运行的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)这样做并不是完全愚蠢的吗?
答案 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