簡體   English   中英

為什么在從cmd線啟動時,在Windows上運行閃亮啟動兩個Rscript進程?

[英]Why does running shiny start two Rscript processes on windows when launching from cmd line?

當我啟動一個從cmd行運行shiny應用程序的R腳本時,它似乎啟動了兩個 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進程:

流程

然而,我所確定的是,我總能殺死兩者中較小的一個(例如, taskkill /pid 9360 /f ),但應用程序仍然可以完整運行? 注意:我嘗試通過START \\b ...在后台START \\b ...命令,但結果是一樣的。

這是R腳本命令行實用程序( Rscript.exeR.exeRcmd.exe )的一般情況,並不是Shiny特有的。 所有這些實際上都調用下面的Rterm.exe來在一個單獨的進程中運行實際的程序。

嘗試使用--verbose Rscript.exe ,你會明白我的意思:

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

您可以嘗試其他工具,看看它們的行為方式。

有關更多信息,請查看源代碼

這個問題也有一些很好的信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM