LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: Akrit

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

[复制链接]
 楼主| 发表于 2008-3-2 14:05:12 | 显示全部楼层
Bingo! 刚才找了一个myxrgsu,总算又能顺利上网了

刚才试了一下在mplayer后直接tail隐藏了一些信息,有时可能不太方便
这样可能更好一些
mplayer xxx.mp3 | tee /tmp/mplayer_tmp
string=`tail -1  /tmp/mplayer_tmp`

ok!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-2 14:32:43 | 显示全部楼层
刚才改了一下代码,发现运行时系统监视器中每五秒钟多了一个微小的写入的动作,虽不好但不太碍事,cat一下tmp文件,没有发现写入了什么东西,莫非只是心理作用?
以后再慢慢改进吧
cat /tmp/mpl_tmp
/home/nile/.mplayer/ukai.ttf doesn't look like a bitmap font description, ignoring.
Cannot load bitmap font: /home/nile/.mplayer/ukai.ttf
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.
MPlayer 1.0rc2-4.1.2 (C) 2000-2007 MPlayer Team
CPU: Intel(R) Pentium(R) M processor 1.73GHz (Family: 6, Model: 13, Stepping: 8)
CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.

Playing Garfield2.mp3.
Audio file file format detected.
==========================================================================
Forced audio codec: mad
Opening audio decoder: [libmad] libmad mpeg audio decoder
AUDIO: 24000 Hz, 2 ch, s16le, 64.0 kbit/8.33% (ratio: 8000->96000)
Selected audio codec: [mad] afm: libmad (libMAD MPEG layer 1-2-3)
==========================================================================
AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A:   3.4 (03.3) of 4927.0 ( 1:22:07.0)  2.6%
Exiting... (Quit)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-2 14:47:08 | 显示全部楼层
果真是tee的问题
刚才改成
mplayer aaa.mp3 | tail -1 > /tmp/mpl_tmp
那个写入操作消失了,正当本人庆贺之时恐怖的现象发生了...
tail 的内存使用量成每秒4k上涨,已从开始的100k涨到了1M,还没有停止的迹象.....

My God!难道没有个Perfect的方案吗...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-2 15:02:51 | 显示全部楼层
明白了,tee是把那些东西直接些进文件里(奇怪的是文件里并没有什么东西)
tail却把他们写进自己的缓存,最后一并写入
看来基于这种方法是没法解决了,总不能运行结束后去读取屏幕缓存里的东西吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-2 18:59:57 | 显示全部楼层
完成了。
查到了mplayer的一个参数-quiet
mplayer -fs -quiet -sub-fuzziness 1 "$FileName" | tee /tmp/mpl_tmp
这样就不会被那些变化的数据塞满缓冲区了。
回复 支持 反对

使用道具 举报

发表于 2008-3-2 19:49:35 | 显示全部楼层
哥们,你在研究什么啊?
回复 支持 反对

使用道具 举报

发表于 2008-3-2 21:37:34 | 显示全部楼层
兄弟,你在研究什么呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-3 12:26:22 | 显示全部楼层
呵呵,主要功能是自动连续播放那种xxxxcd1,xxxxcd2或xxxxA,xxxxB那种分成几部分的电影,懒得看完一部还待手动播放下一部

以前如果在播放cd1时手动推出,shell还会自动放cd2,不太方便
现在shell可以自动判断是手动退出的还是End Of File就没有这个问题了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表