Ich habe ruby by rvm (systemweit) installiert und über die normale Konsole korrekt funktioniert und mein Rails-Programm verhält sich korrekt mit rails runner
und apache2+passenger
.
Jetzt in einer Crontab, ich rief rails runner foo.bar
, es gibt auf, sorgfältig untersuchen Sie das Protokoll, das ich sehe:
Wer weiß, warum / usr / bin / env in Crontab nicht funktioniert?
Ich hatte ein ähnliches Problem. Cron scheint Befehle standardmäßig auszuführen, ohne die PATH-Einstellungen zu verwenden, die Sie für den Benutzer erwarten würden (wenn er sich als dieser Benutzer anmeldet). Tatsächlich schien es nicht einmal die Standard-PATH-Einstellungen zu verwenden (sei es in / etc / profile oder anderswo).
Ich konnte das Problem mit den folgenden Befehlen finden (der erste ist, wie cron Befehle auszuführen scheint):
su -c 'printenv PFAD' userX
Mit Ausgabe: / usr / local / bin: / usr / bin: / bin: / usr / games
su -l userX -c 'printenv PFAD'
Mit Ausgabe: /opt/ruby-enterprise-1.8.7-2010.02/bin/:/opt/ruby-enterprise-1.8.7-2010.02/bin/:/usr/local/bin:/usr/bin: / bin: / usr / games
Der erste Befehl scheint die PATH-Variable in keiner Weise aufzufüllen, außer für den Standardstandard. In meinem Fall habe ich es gelöst, indem ich einfach den notwendigen Pfad (REE) zu /etc/login.defs hinzugefügt habe, der standardmäßig so aussieht:
/etc/login.defs:103:ENV_PATH PATH = / usr / lokal / bin: / usr / bin: / bin: / usr / games
Tags und Links ruby ruby-on-rails-3 crontab