我有一个闪亮的应用程序,该应用程序需要运行系统命令以通过对system()的调用来触发数据集成作业,如果我运行独立的闪亮(与runApp一起运行),则可以正常工作,但是如果我部署代码到没有更改的闪亮服务器,system()命令不起作用。 system()是闪亮服务器内部的有效调用吗?如果没有,执行系统命令还有哪些选择?
答案 0 :(得分:0)
在闪亮的(&闪亮的服务器)中运行system()
效果很好:
library(shiny)
ui <- fluidPage(
textOutput("dirOut")
)
server <- function(input, output) {
SysName <- Sys.info()['sysname']
if(SysName=="Linux"){
dir <- system("pwd", intern = TRUE)
} else if(SysName=="Windows"){
dir <- system("cmd cd", intern = TRUE)
} else {
dir <- paste("Error: No cmd given for", SysName)
}
output$dirOut <- renderText({
dir
})
}
shinyApp(ui = ui, server = server)
答案 1 :(得分:0)
万一有人遇到这种情况,我发现我的问题是因为Shiny-server在“光泽”用户下运行,该用户没有特权来运行我需要的系统命令(运行一些脚本),并且也没有特权(读取或执行)脚本,并通过向“闪亮”用户授予必要的权限来解决该问题。