【问题标题】:Specific R command-line options when running shiny-server运行闪亮服务器时的特定 R 命令行选项
【发布时间】:2017-10-16 15:38:51
【问题描述】:

我在 Ubuntu 上运行 shiny-server,我需要设置不同的 R 命令行选项 - 特别是 --max-ppsize。我没有找到如何修改闪亮服务器运行R 的方式。这个怎么修改?

【问题讨论】:

    标签: r shiny-server


    【解决方案1】:

    Shiny Server 配置手册的1.3.5 R Installation Location 概述了实现此功能的关键。主要思想是创建您自己的名为R 的可执行文件,并让它将您想要的命令行参数传递给真正的R 可执行文件。

    第 1 步:创建新用户

    我命名我的鲍勃。将以下文件添加到 Bob 的主目录。

    /home/bob/.bash_profile:

    export PATH=/home/bob/myR:$PATH
    

    /home/bob/myR/R:

    #!/bin/bash
    /usr/bin/R --max-ppsize 123456 "$@"
    

    通过chmod +x /home/bob/myR/R 使第二个文件可执行。

    第 2 步:配置 Shiny 以以 Bob 身份运行您的应用

    在您的 Shiny 配置文件中,添加以下内容:

    location /testApp {
      run_as bob;
      site_dir /srv/shiny-server/testApp;
      log_dir /var/log/shiny-server;
    }
    

    在运行testApp 时,Shiny 将首先获取 Bob 的 .bash_profile,这使得 R 指向 Bob 的版本,因为 $PATH 优先。 Bob 的版本只是简单地添加了您想要的--max-ppsize 选项并将它与其他选项"$@" 一起传递给真正的R 可执行文件。您可以通过以下方式自行测试:

    $ su bob
    $ source /home/bob/.bash_profile
    $ which R
    /home/bob/myR/R
    $ R -q --args Test
    > commandArgs()
    [1] "/usr/lib/R/bin/exec/R" "--max-ppsize"          "123456"
    [4] "-q"                    "--args"                "Test" 
    

    第 3 步:创建一个 testApp 以确保一切都按预期运行

    这是我的测试 Shiny 应用程序。

    /srv/shiny-server/testApp/ui.R

    ui <- fluidPage(
      textOutput( "user" ),
      textOutput( "cmdArgs" )
    )
    

    /srv/shiny-server/testApp/server.R

    server <- function(input, output, session)
    {
      output$user <- renderText({
        Sys.info()["user"]
      })
    
      output$cmdArgs <- renderText({
        paste( commandArgs(), collapse=" " )
      })
    }
    

    Firefox 中的结果:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-29
      • 2018-09-03
      • 1970-01-01
      • 2015-10-21
      • 2013-05-01
      • 1970-01-01
      • 2020-03-19
      • 1970-01-01
      相关资源
      最近更新 更多