Ich benutze Ubuntu 16.04.3 LTS in der Cloud. Wenn ich ein Programm von der Kommandozeile mit Rscript starte, läuft alles wie erwartet. Wenn ich dasselbe Programm mit Rscript über Cron ausführe, scheint jedoch, dass meine .Rprofile-Datei nicht aufgerufen wird. Ich habe ein kleines Programm geschrieben, um dieses Problem zu demonstrieren:.Rprofile nicht unter Cron aufgerufen
test_cron = function() {
#The next 3 lines are base R.
sink('~/test_cron.out')
on.exit(sink())
cat('The date and time are:', as.character(Sys.time()), '\n')
#Now try to access a personal option, set by .Rprofile.
root = getOption('root')
cat('Option root:', root, '\n')
}
test_cron()
Ich betreiben diese von der Kommandozeile mit folgendem Befehl:
Rscript test_cron.r
Die cron_test.out Datei enthält folgende Komponenten:
The date and time are: 2017-11-14 06:15:46
Option root: /home/ubuntu/_algi/
Die relevante Zeile in crontab ist wie folgt:
20 6 * * * /usr/bin/Rscript ~/test_cron.r
Wenn diese von cron ausgeführt wird, cron_test.out enthält folgende Komponenten:
The date and time are: 2017-11-14 06:20:01
Option root:
das Programm offenbar, wenn sie von cron, nicht meine persönliche Option 'root' zugreifen können. Dies ist einer unter einer Reihe von Experimenten, die ich ausgeführt habe, die mich davon überzeugen, dass .Rprofile nicht unter cron aufgerufen wird. Gibt es eine Lösung dafür?
Hinweis: Die Umgebungsvariable R_PROFILE_USER verweist auf meine .Rprofile-Datei. Anscheinend ignoriert Rscript unter cron es.
Ich habe meine Frage bearbeitet, um festzustellen, dass die Umgebungsvariable R_PROFILE_USER auf meine .Rprofile-Datei verweist. Vermutlich ignoriert Rscript unter cron dies. In jedem Fall bietet Ihre Antwort, obwohl sie von pädagogischem Interesse ist, keine Lösung für das Problem, oder wenn ich es nicht sehe. – Argent