运行 闪亮服务器时的特定 R 命令行选项
Specific R command-line options when running shiny-server
我在 Ubuntu 上 运行 闪亮服务器,我需要设置不同的 R 命令行选项 - 特别是 --max-ppsize
。我没能找到如何修改 shiny-server 运行方式的方法 R
。如何修改?
在 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 步:将闪亮配置为 运行 您的应用程序作为 Bob
在您的 Shiny 配置文件中,添加以下内容:
location /testApp {
run_as bob;
site_dir /srv/shiny-server/testApp;
log_dir /var/log/shiny-server;
}
当 运行ning testApp
时,Shiny 将首先获取 Bob 的 .bash_profile
,这使得 R
由于 $PATH
优先级而指向 Bob 的版本。 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 以确保一切 运行ning 如预期
这是我的测试 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 中的结果:
我在 Ubuntu 上 运行 闪亮服务器,我需要设置不同的 R 命令行选项 - 特别是 --max-ppsize
。我没能找到如何修改 shiny-server 运行方式的方法 R
。如何修改?
在 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 步:将闪亮配置为 运行 您的应用程序作为 Bob
在您的 Shiny 配置文件中,添加以下内容:
location /testApp {
run_as bob;
site_dir /srv/shiny-server/testApp;
log_dir /var/log/shiny-server;
}
当 运行ning testApp
时,Shiny 将首先获取 Bob 的 .bash_profile
,这使得 R
由于 $PATH
优先级而指向 Bob 的版本。 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 以确保一切 运行ning 如预期
这是我的测试 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 中的结果: