运行 在 shiny-server 中使用 system() 的系统命令
run system command using system() inside shiny-server
我有一个 shiny 应用程序需要 运行 系统命令通过调用 system() 来触发数据集成作业,如果我 运行 独立 shiny(运行 运行App) 这工作正常,但是如果我将代码部署到 shiny-server 而不更改 system() 命令不起作用。 system() 是闪亮服务器内的有效调用吗?如果没有,有什么替代方法可以执行系统命令?
运行 system()
在 shiny(& shiny-server)中工作得很好:
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)
万一有人遇到这种情况,我发现我的问题是因为 "shiny" 用户下的 shiny-server 运行s 没有权限 运行 系统命令 i需要(运行 一些脚本)并且也没有脚本的权限(读取或执行),通过向 "shiny" 用户授予必要的权限来修复它。
我有一个 shiny 应用程序需要 运行 系统命令通过调用 system() 来触发数据集成作业,如果我 运行 独立 shiny(运行 运行App) 这工作正常,但是如果我将代码部署到 shiny-server 而不更改 system() 命令不起作用。 system() 是闪亮服务器内的有效调用吗?如果没有,有什么替代方法可以执行系统命令?
运行 system()
在 shiny(& shiny-server)中工作得很好:
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)
万一有人遇到这种情况,我发现我的问题是因为 "shiny" 用户下的 shiny-server 运行s 没有权限 运行 系统命令 i需要(运行 一些脚本)并且也没有脚本的权限(读取或执行),通过向 "shiny" 用户授予必要的权限来修复它。