Auf einem lokalen Server (Ubuntu) habe ich das Programm Foodsoft installiert, das in Ruby geschrieben ist. Es verwendet Bundler, auch MySQL. foodsoft kann durch den BefehlCronjob führt Script nicht korrekt aus
RAILS_ENV=production bundle exec rails s -b 192.168.0.15
Ich habe auch einen sh Skript programmiert gestartet werden, die foodsoft beginnt, wenn es nicht läuft:
#!/bin/sh
export DISPLAY=:0
export LANG=de_DE.utf8
ip_adr=$(/bin/hostname -I)
if [ $(pidof ruby) ]
then
echo "online"
else
echo "offline"
cd /home/jondal/foodsoft
RAILS_ENV=production bundle exec rails s -b $ip_adr
fi
Wenn ich das Skript in der Shell ausgeführt, die alle funktioniert gut. Aber mein Cronjob (in crontab aufgeführt) führt das Skript nicht vollständig aus. Es produziert die folgenden txt-Datei:
offline /usr/local/bin/Bundle:
offline bundler: command not found: rails Install missing gem executables with `bundle install`
Wenn ich das sh Skript in der Schale mit dem Präfix env -i bekomme ich folgende starten : 23: in
load': cannot load such file -- /usr/share/rubygems-integration/1.9.1/gems/bundler-1.3.5/bin/bundle (LoadError) from /usr/local/bin/bundle:23:in
'
Haben Sie irgendwelche Ideen, was ich tun kann?
Verwenden Sie rvm? Möglicherweise müssen Sie einige zusätzliche Schritte ausführen, damit Rvm mit Crontab gut spielt. –
Hat Ihr 'cron'-Benutzer Berechtigungen im Verzeichnis'/home/jondal/foodsoft'? Insbesondere sind Ausführungsberechtigungen richtig, besonders in 'bin /'? –