我写了个shell脚本,这个脚本的文件名是a.sh,在这个shell里面有:
echo "ABCDEFG“
gst-launch ......
echo “HIJKLMN”
第一行就不用说了就是显示一句话,第二行是运行一个命令。
我在terminal里运行./a.sh这个脚本,于是terminal的屏幕上首先显示出我echo的ABCDEFG,
然后运行gst-launch这个程序,屏幕上出现一行行这个命令输出的东西,
如果我要终止这个gst-langch,我只能在键盘上按ctrl+Z才可以 。
如果我在键盘上按ctrl+Z,那么这个a.sh这个脚本就被终止了。
我的问题是:
怎么才能在./a.sh这个脚本里终止gst-langch的运行,而不比我手动在键盘上按ctrl+Z?
谢谢!
如何在shell里面终止正在运行的一个窗口?
-
- 帖子: 14
- 注册时间: 2010-04-12 6:37
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 如何在shell里面终止正在运行的一个窗口?
代码: 全选
&
-
- 帖子: 14
- 注册时间: 2010-04-12 6:37
Re: 如何在shell里面终止正在运行的一个窗口?
没看明白呀?lilydjwg 写了:这样还会在后台继续运行。真要终止的话,接着用 kill $!,如果是中止的话,用 kill -STOP $!代码: 全选
&
是在哪里写&阿?
我在bash里面写 gst-launch,这个命令会运行10分钟,在这中间我必须检查一些东西然后可能终止这个命令。
那么我应该在哪里写kill?具体怎么写呢?谢谢谢谢!!!!!
-
- 帖子: 229
- 注册时间: 2007-07-01 17:36
- 系统: (En):System
- 来自: (En):address
- 联系:
Re: 如何在shell里面终止正在运行的一个窗口?
一个例子,不知道是不是你需要的。例子里的命令是yes
运行以后,屏幕输出abcd还有xxxx,yes无输出,后台运行。 后面判断你自己的条件,满足,就kill掉yes.
运行以后,屏幕输出abcd还有xxxx,yes无输出,后台运行。 后面判断你自己的条件,满足,就kill掉yes.
代码: 全选
#!/bin/bash
echo "abcd"
yes > /dev/null 2>&1 &
echo "xxxxxxxxxxxxxxxxxxxxxx"
while [ true ]; do
if [ 你的结束程序条件 ]; then
kill $(pidof yes)
exit 0
fi
done
---
regards,
Kent
regards,
Kent
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 如何在shell里面终止正在运行的一个窗口?
pidof 会误杀其他进程吧,还是把进程的 pid 积存到变量里比较好。另外,循环里不加个 sleep 太耗 CPU 了。sk1418 写了:一个例子,不知道是不是你需要的。例子里的命令是yes
运行以后,屏幕输出abcd还有xxxx,yes无输出,后台运行。 后面判断你自己的条件,满足,就kill掉yes.代码: 全选
#!/bin/bash echo "abcd" yes > /dev/null 2>&1 & echo "xxxxxxxxxxxxxxxxxxxxxx" while [ true ]; do if [ 你的结束程序条件 ]; then kill $(pidof yes) exit 0 fi done