我在Ubuntu上运行有光泽的服务器,我需要设置不同的R命令行选项 - 特别是--max-ppsize
。我没有找到如何修改闪亮服务器运行方式R
。如何修改?
答案 0 :(得分:1)
在Shiny Server配置手册的1.3.5 R Installation Location中概述了实现此功能的关键。主要的想法是创建一个名为R
的自己的可执行文件,并让它将命令行参数传递给真正的R
可执行文件。
第1步:创建新用户
我把我的名字命名为鲍勃。将以下文件添加到Bob的主目录。
<强> /home/bob/.bash_profile:强>
export PATH=/home/bob/myR:$PATH
<强> /家庭/鲍勃/ 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;
}
当运行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以确保所有内容都按预期运行
这是我的测试Shiny app。
<强> /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中的结果: