私はクラウド上でUbuntu 16.04.3 LTSを実行しています。コマンドラインからRscriptを使ってプログラムを実行すると、すべてが期待通りに実行されます。しかし、Rscriptで同じプログラムをcronで実行すると、自分の.Rprofileファイルが呼び出されないように見えます。私はこの問題を実証するための小さなプログラムを書かれている:cronで.profileが呼び出されていません
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()
私は、このコマンドを使用してコマンドラインからこれを実行します。
Rscript test_cron.r
cron_test.outファイルには以下が含まれています。
The date and time are: 2017-11-14 06:15:46
Option root: /home/ubuntu/_algi/
crontabの該当する行は次のとおりです。
20 6 * * * /usr/bin/Rscript ~/test_cron.r
これはクーロンによって実行されると、cron_test.outには、次のものが含まれています
The date and time are: 2017-11-14 06:20:01
Option root:
明らかにcronが実行するプログラムは、私の個人的なオプション「ルート」にアクセスできませんでした。これは、私が実行した多くの実験の中の一つです.Rprofileはcronのもとでは呼び出されません。これのための修正はありますか?
注:R_PROFILE_USER環境変数は、自分の.Rprofileファイルを指すように設定されています。明らかに、cronの下のRscriptはそれを無視します。デフォルトRによって
自分の.Rprofileファイルを指すようにR_PROFILE_USER環境変数が設定されていることに注意するように私の質問を編集しました。恐らくcscronのRscriptはこれを無視しています。いずれにせよ、あなたの答えは、教育的関心の間に、問題の修正を提供していないか、それが表示されない場合は表示されません。 – Argent