L'ho fatto una volta e sto provando a farlo su un nuovo computer e non riesco a vedere cosa sto facendo male.
Ho uno script rubino nella mia cartella utente denominato forecast.rb. L'ho impostato su eseguibile (a + x). Scrive una riga su un altro file chiamato .weather.txt.
Voglio eseguire forecast.rb ogni 5 minuti.
Ho un file plist chiamato com.jwhite.forecast_tmux.plist. Il file sembra:
<?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>
Questo file si trova in ~ / Library / LaunchAgents. E dopo averlo spostato lì ho lanciato Launchctl load -w ~ / Library / Launchagents / com.jwhite.forecast_tmux.plist.
Se eseguo forecast.rb (./forecast.rb) funziona correttamente. Ma il mio launchd non è in esecuzione.
Cosa mi manca?
EDIT:
Ho iniziato a utilizzare LaunchControl e ho ricevuto l'errore.
/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>'
Ma quando eseguo questo dal terminale, tutto viene eseguito correttamente. Quindi launchctl non può leggere in Ruby Gems?