分页: 1 / 1

[问题]请问shell如何判断一个进程是自动退出的还是人为终止的?

发表于 : 2008-02-29 23:03
Nile
我在写一个用mplayer连续播放文件的shell,
问题是如何让shell区分
1, mplayer播放到文件结尾自动退出
2, 用户按q或esc退出程序
两种情况(都属于正常退出)?

请各位高手给点建议
thx!

发表于 : 2008-03-03 20:21
BigSnake.NET
不可以

发表于 : 2008-03-03 21:18
eexpress
mp的输出,定向到你的shell。一直read,判断最后的文字?
试试吧。只是,mp不是支持列表的吗。

发表于 : 2008-03-06 4:58
cosechy
加个管道,用别的程序代替mplayer读键盘输入

发表于 : 2008-03-06 13:22
eexpress
mplayer /home/exp/媒体/◇事件声音-et/select.wav; echo $?
判断$?都可以的。判断什么键盘哦。

发表于 : 2008-03-06 17:01
chasye
shell 中加入

_exit()
{
echo "some one kill me !!!"
exit 1
}
trap "_exit" 2 3 15

发表于 : 2008-03-07 16:31
Nile
呵呵,按ee的思路作好了
eexpress 写了:mp的输出,定向到你的shell。一直read,判断最后的文字?
试试吧。只是,mp不是支持列表的吗。
只是感到mplayer的列表有点不够“智能”:D

播放时
mplayer -fs -quiet -sub-fuzziness 1 "$FileName" | tee /tmp/mpl_tmp
然后mplayer结束后用
if [ "`tail -1 /tmp/mpl_tmp`" = "Exiting... (Quit)" ]
判断就可以了。

PS:学校网速真慢到姥姥家了.... :x

发表于 : 2008-03-07 19:57
eexpress
$?的,我试过,也可以的吧。你试试

发表于 : 2008-03-07 20:08
BigSnake.NET

代码: 全选

autumncat@autumncat-host:~/qt
$ mplayer -really-quiet foo.mp3
mplayer: could not connect to socket
mplayer: No such file or directory
Exit status: 1
autumncat@autumncat-host:~/qt
$ mplayer -really-quiet foo.mp3
mplayer: could not connect to socket
mplayer: No such file or directory
Exit status: 0
autumncat@autumncat-host:~/qt
$ mplayer -really-quiet foo.mp3
mplayer: could not connect to socket
mplayer: No such file or directory
Exit status: 0
第一次是 pkill
第二次是 q
第三次是 自然播完

发表于 : 2008-03-07 20:13
eexpress
没文件的不对吧。
我理解楼主只是需要ctrl-c和完成2种状态。有其他的要求的,还是判断输出算了。

发表于 : 2008-03-07 20:15
BigSnake.NET
eexpress 写了:没文件的不对吧。
我理解楼主只是需要ctrl-c和完成2种状态。有其他的要求的,还是判断输出算了。
ee根本没看清lz.. 他要的是区别 q 与 eof

发表于 : 2008-03-07 20:19
eexpress
那随便了。我想理解问题,并不局限于标题要求的。

球猫,赶紧出来,说明下今天ping通人了没。