Saya sudah melakukan ini sekali dan saya mencoba melakukannya di komputer baru dan saya tidak dapat melihat kesalahan saya.
Saya memiliki skrip ruby di folder pengguna saya bernama forecast.rb. Saya telah mengaturnya menjadi executable (a + x). Itu menulis garis keluar ke file lain bernama .weather.txt.
Saya ingin menjalankan forecast.rb setiap 5 menit.
Saya memiliki file plist bernama com.jwhite.forecast_tmux.plist. File itu terlihat seperti:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.jwhite.forecast_tmux</string>
<key>ProgramArguments</key>
<array>
<string>/Users/jwhite/forecast.rb</string>
</array>
<key>StartInterval</key>
<integer>300</integer>
</dict>
</plist>
File ini terletak di ~ / Library / LaunchAgents. Dan setelah memindahkannya di sana saya menjalankan Launchctl load -w ~ / Library / Launchagents / com.jwhite.forecast_tmux.plist.
Jika saya menjalankan forecast.rb (./forecast.rb) berjalan dengan baik. Tapi launchd saya tidak dieksekusi.
Apa yang saya lewatkan?
EDIT:
Saya sudah mulai menggunakan LaunchControl dan mendapatkan kesalahan.
/Users/jwhite/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- geocoder (LoadError)
from /Users/jwhite/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /Users/jwhite/forecast.rb:3:in `<main>'
Tetapi ketika saya menjalankan ini dari terminal semuanya dijalankan dengan baik. Jadi launchctl tidak bisa membaca di Ruby Gems?
#!/Users/jwhite/.rvm/rubies/ruby-2.2.1/bin/ruby
Jawaban:
Saya memiliki masalah yang sama, mencoba menjalankan skrip pada interval menggunakan LaunchControl (aplikasi hebat, periksa). Akan menyalin dan menempel langsung dari sumber itu membantu saya:
Dalam kasus saya, saya hanya mengatur GEM_HOME dan PATH yang benar di LaunchControl.
sumber