Saya mencoba mengatur pekerjaan cron di Openshift karena mengimpor email di aplikasi Redmine. Oleh karena itu, saya menyiapkan skrip yang cermat seperti ini:
#!/bin/bash
rake RAILS_ENV=production -f ${OPENSHIFT_REPO_DIR}/Rakefile redmine:email:receive_imap host=imap.googlemail.com port=993 ssl=1 [email protected] password=yyy ...
Ini berjalan tanpa masalah ketika diluncurkan secara manual pada koneksi ssh. Ketika dijalankan oleh cron, rake tidak dapat ditemukan. Melakukan beberapa debugging, saya menemukan bahwa jalurnya tidak sama dengan shell login; dan bahkan jika saya menggunakan path lengkap untuk rake, ruby yang ditemukan adalah versi 1.8 (bukan 1.9 sesuai kartrid), dan setiap kali saya mengatur jalur yang sama dengan shell, maka libruby-1.9 tidak ditemukan.
Mengikuti beberapa saran lain saya mencoba menambahkan baris berikut sebagai pengganti pengaturan PATH khusus:
source /usr/bin/rhcsh
namun demikian rake masih belum ditemukan. Saya juga mencoba menggunakan bundle exec.
Apa cara yang tepat untuk mengatur lingkungan cron di Openshift sehingga dapat berjalan seperti shell login?
$PATH
, Anda harus mereferensikanrake
yang Anda inginkan sepenuhnya. Ini adalah tindakan pengamanan karena jika tidak, akan terlalu mudah untuk mengeksekusi kode istimewa. Dengan begitu, tidak akan ada kendala jalur juga. - person Patru   schedule 27.03.2014