我有一个关于在bash脚本中向后台添加进程的问题。我有一个小脚本来测试openvpn的速度,就像服务器是客户端一样。但是,openvpn喜欢在前台运行,以防止运行任何类型的额外命令。

通常,仅通过cmd行执行此操作,然后运行:

$ (openvpn --config myconfig.opvn) &


但是在vi中,我尝试执行此操作,但它不像cmd行上那样工作。

connect () {
    (openvpn --config myconfig.opvn) &;
    sleep 30;
    $speed --server 2426 | grep 'Download\|Upload' > $log;
    killall openvpn;
}


有没有办法在vi中做到这一点,以便它像我想要的那样工作?

谢谢。

最佳答案

您可以将openvpn放在其他文件中。假设xyz.sh并从connect函数调用xyz.sh,如下所示:

档案:xyz.sh


  (openvpn --config myconfig.opvn)


connect () {
    . ./xyz.sh &
    sleep 30;
    $speed --server 2426 | grep 'Download\|Upload' > $log;
    killall openvpn;
}


。 ./xyz.sh将打开一个新控制台,并将为您运行openvpn命令。希望这可以帮助。

关于linux - bash脚本/vi中的后台进程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23523961/

10-10 17:44