R系统(" pgrep -f ...")调用的额外进程ID

时间:2015-09-02 12:14:19

标签: r ubuntu grep

从R会话调用system函数并将pgrep命令传递给列出与特定名称匹配的进程id时,system调用的结果会产生一个额外的pid与相同的{{1直接在shell中使用的命令 这可能是在pgrep调用期间创建额外进程的问题,该进程也被system捕获并返回到R会话。

问题是如何避免此问题并找到与名称匹配的所有进程?

要重现启动任何进程,我将使用pgrep进程(ubuntu记事本应用程序)。

从R:

运行

gedit

从shell运行:

system("pgrep -f gedit", intern = TRUE)
# [1] "4898" "5014"

如果额外的pid总是最后一个返回,我可以使用pgrep -f gedit # 4898

1 个答案:

答案 0 :(得分:1)

您可以通过删除-f调用中的pgrep参数来获得所需的输出。这是我从电脑上得到的:

system("pgrep gedit", intern = TRUE)
#[1] "2888"
system("pgrep -f gedit", intern = TRUE)
#[1] "2888" "5839"