为什么在从cmd线启动时,在Windows上运行闪亮启动两个Rscript进程?

时间:2017-12-05 20:35:40

标签: r cmd shiny shiny-server

当我从R行启动运行shiny应用的cmd脚本时,它似乎启动 两个 Rscript.exe的实例?我总是可以杀死这两个中较小的一个,应用程序继续运行?有人可以详细说明幕后的实际情况,或者告诉我我做错了什么是创造双重过程?

super_simple.R

require(shiny)

app <- shinyApp(
  ui = bootstrapPage(
    numericInput('n', 'Number of obs', 100),
    plotOutput('plot')
  ),
  server = function(input, output) {
    output$plot <- renderPlot({ hist(runif(input$n)) })
  }
)

runApp(app, launch.browser = FALSE, port = 1234, host = "10.123.4.56")

现在,如果我通过cmd行启动此功能:

START Rscript --vanilla C:\Users\Jason\Projects\super_simple.R

此时,我可以将浏览器指向http://10.123.4.56:1234并查看该应用。但是,如果我通过以下方式查看正在运行的流程:tasklist /FI "imagename eq rscript*"我看到 两个 Rscript.exe进程:

Processes

然而,我所确定的是,我总能杀死两者中的较小者(例如,taskkill /pid 9360 /f)但该应用程序仍然可以完整运行?注意:我尝试通过START \b ...在后​​台启动命令,但结果是一样的。

1 个答案:

答案 0 :(得分:2)

这是R脚本命令行实用程序(pip install https://github.com/pytorch/text/archive/master.zip Rscript.exeR.exe)的一般情况,并不是Shiny特有的。所有这些实际上都调用了下面的Rcmd.exe来在一个单独的进程中运行实际的程序。

使用Rterm.exe尝试Rscript.exe,您会明白我的意思:

--verbose

您可以尝试使用其他工具,看看它们的行为方式。

有关详细信息,请查看源代码

这个问题也有一些很好的信息