0

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

我可以吗:

(1) 以某种方式线程化这两个命令?

(2)写三个脚本;控制器脚本、pppd 脚本和 ip 路由脚本?

(3) 这样做不会很笨拙吗?

4

1 回答 1

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
于 2011-06-29T19:51:01.590 回答