1

我有以下情况: perl 脚本读取应用程序编写的文件pid,并试图杀死它。但问题是我不想杀死另一个进程,所以我检查具有记录 PID 的当前进程是否具有相同的命令行。如果是这样,应用程序可能会被杀死。

以下蓝调脚本找出 cmdline:

$PIDCMDLINE = `ps -p $PID -o cmd`;

问题是,如果另一个用户的另一个实例启动了,可能在同一个 sid 上,它将被杀死,因为它将返回一个有效的命令行,我不想要这种行为。

如何限制 ps -p 只搜索当前用户进程(不,简单ps不算,因为-p nullifyps 的默认效果)

谢谢!

4

2 回答 2

1

您可以使用以下命令检查特定 PID 的命令和用户:

ps -p <PID> -o user,cmd --columns 1000 | grep `whoami`

根据评论添加“grep”。

于 2013-09-26T08:16:27.487 回答
0

May be a little awkward, but what about this:

$PIDCMDLINE = ps -p $PID -o user,command | grep `whoami` | awk '{ print $2 }'
于 2013-09-26T08:22:10.527 回答