LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 932|回复: 3

如何预知pid?

[复制链接]
发表于 2010-6-3 10:48:12 | 显示全部楼层 |阅读模式
我用crontab 和mplayer 下载一些网络上的mms音频文件。
运行多个mplayer程序,不同pid号,我想要准确知道 本次运行 或着说 将要运行的mplayer程序的pid号。

比如:9:00-12:00 用mplayer -dumstream下载,之后,kill掉mplayer
10:00-13:00 用mplayer -dumstream下载另一个地址,之后kill掉mplayer
11:00-15:00 用mplayer -dumstream下载另另一个地址,之后kill掉mplayer


用killall -9 mplayer会杀掉不该杀的。
另一种用kill -9 PID。
用ps和人脑容易判断,应该杀那个,但是用程序自动判断比较难。写个shell比较麻烦也不太精确。

有没有什么命令可以精确获取将要运行的程序的pid吗?
比如我运行mplayer程序,就知道本次运行的mplayer的pid号。
发表于 2010-6-3 15:23:48 | 显示全部楼层
我的想法是:
开个bash运行mplayer, 记下bash的pid, 然后查找ppid是该pid的进程。如下:
#!/bin/bash
echo -n $$ > /tmp/pid.时间
mplayer xxxxx

查找的时候,可以
ppid=`cat /tmp/pid.时间`
kill $(ps -e -o ppid,pid,comm|awk '$1~/'$ppid'/ && $3~/mplayer/{print $2}')
或者可能直接杀掉父进程也可以。
kill $(cat /tmp/pid.时间)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-6-4 05:29:35 | 显示全部楼层
谢谢楼上兄弟帮助,不胜感激。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-6-10 12:06:36 | 显示全部楼层
请问下杀死父了进程,为什么子进程不死。
回复 支持 反对

使用道具 举报

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

本版积分规则

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