gpt4 book ai didi

r - 从 cmd 行启动时,为什么运行 Shiny 会在 Windows 上启动两个 Rscript 进程?

转载 作者:行者123 更新时间:2023-12-04 10:07:59 34 4
gpt4 key购买 nike

当我开始 R运行 shiny 的脚本来自 cmd 的应用程序行,它似乎启动 两个 Rscript.exe 的实例?我总是可以杀死两者中较小的一个并且应用程序继续运行?有人可以详细说明幕后实际发生的事情,或者告诉我我做错了什么,导致了双重过程吗?

super 简单的.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 ... 在后台启动命令但结果是一样的。

最佳答案

这是 R 脚本命令行实用程序( Rscript.exeR.exeRcmd.exe )的普遍现象,并不特定于 Shiny。所有这些实际上都调用了Rterm.exe在下面以在单独的进程中运行实际程序。

试试 Rscript.exe--verbose你会明白我的意思:

> Rscript --verbose script.R
running
'C:\PROGRA~1\R\R-34~1.0\bin\x64\Rterm.exe --slave --no-restore --file=script.R'

您可以尝试其他工具并查看它们的行为方式。

有关更多信息,请查看源代码
  • https://github.com/wch/r-source/blob/trunk/src/gnuwin32/front-ends
  • https://github.com/wch/r-source/blob/trunk/src/unix/Rscript.c

  • 这个问题也有一些很好的信息
  • R.exe, Rcmd.exe, Rscript.exe and Rterm.exe: what's the difference?
  • 关于r - 从 cmd 行启动时,为什么运行 Shiny 会在 Windows 上启动两个 Rscript 进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47662241/

    34 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com