1
我們必須從一個很老的rails應用程序運行一些rails方法。因爲它太舊了,我們不想更改代碼或安裝新的計劃任務或寶石。所以我們嘗試在crontab中通過一個簡單的rails runner命令來啓動這些方法。從crontab運行rails runner方法
我們嘗試了一些組合,但服務器對我們來說是新的,我們不知道爲什麼crontab無法執行rails runner
命令。
這些都是我們的嘗試:
rails runner ApplicationController.method >> logfile.log
/bin/bash -l -c 'cd /path/to/code && rails runner ApplicationController.method' >> logfile.log
source ~/.bashrc && /bin/bash -l -c 'cd /path/to/code && rails runner ApplicationController.method' >> logfile.log
running a shell script with the rails runner command
ect.
所有attemps的工作在正常外殼(SSH的連接),但它永遠不會從crontab的工作。這些命令總是創建日誌文件,但它是空的,我們確保該命令未被執行(通過rails c
進行檢查)。
我們可以做些什麼來使crontabs工作?
編輯:服務器使用rvm
來管理ruby版本。也許這是問題所在。
這不起作用。就像我在我的問題中所說的,我已經嘗試了'/ bin/bash -l -c'命令而沒有成功。我也嘗試以這種方式運行ruby文件('.rb')。沒有運氣。我們使用rvm,是這個問題嗎? – mgluesenkamp