【发布时间】:2013-09-26 08:00:21
【问题描述】:
我有以下情况:
perl 脚本读取应用程序写入的文件pid,并试图杀死它。
但问题是我不想杀死另一个进程,所以我检查具有记录 PID 的当前进程是否具有相同的命令行。如果是这样,应用程序可能会被终止。
以下 blues 脚本找出 cmdline:
$PIDCMDLINE = `ps -p $PID -o cmd`;
问题是,如果另一个用户的另一个实例启动,可能在同一个 sid 上,它将被杀死,因为它将返回一个有效的命令行,我不希望这种行为。
如何限制 ps -p 只搜索当前用户进程(不,简单的ps 不算,因为-p nullify ps 的默认效果)
谢谢!
【问题讨论】:
-
如果你不是root,你不能杀死其他用户的进程。
-
如果您在 Linux 或其他系统上使用
/proc,那么您可以只检查/proc/$PID的 uid。