使用system时通过R捕获pid进程

问题描述

在Windows中,想使用R system()捕获Java pid,如下所示:

system("java -jar .\app.jar john_doe 1600_50_555",wait = FALSE)

尝试过:

grep("^java.exe",readLines(textConnection(system('tasklist',intern=TRUE))),value=TRUE)

想要在不使用grep()或其他过滤条件的情况下捕获该pid。

解决方法

您可以使用ps软件包。

library(ps)
library(dplyr)

system("java -jar .\app.jar john_doe 1600_50_555",wait = FALSE)

pid <- ps() %>% 
  filter(name == "java.exe") %>% 
  pull(pid)