2017-10-16 3 views

Répondre

1

La clé pour que cela fonctionne est décrite dans 1.3.5 R Installation Location du manuel de configuration de Shiny Server. L'idée principale est de créer votre propre exécutable nommé R et de lui passer les arguments de ligne de commande que vous voulez pour le véritable exécutable R.

Étape 1: Créer un nouvel utilisateur

Je nommé le mien Bob. Ajoutez les fichiers suivants au répertoire personnel de Bob.

/home/bob/.bash_profile:

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

/home/bob/Myr/R:

#!/bin/bash 
/usr/bin/R --max-ppsize 123456 "[email protected]" 

Faire le deuxième fichier exécutable en faisant chmod +x /home/bob/myR/R.

Étape 2: Configurer brillant pour exécuter votre application comme Bob

Dans votre fichier de configuration Brillant, ajoutez ce qui suit:

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

Lors de l'exécution testApp, Brillant sera première source Bob .bash_profile, qui fait R point à la version de Bob en raison de la priorité $PATH. La version de Bob ajoute simplement l'option --max-ppsize désirée et la transmet au réel exécutable R avec d'autres options "[email protected]". Vous pouvez tester vous-même, en faisant:

$ 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" 

Étape 3: Créer un testApp pour rendre le fonctionnement de que tout comme prévu

Voici mon test app brillant.

/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=" ") 
    }) 
} 

Résultat dans Firefox:

enter image description here