He hecho esto una vez e intento hacerlo en una computadora nueva y no puedo ver lo que estoy haciendo mal.
Tengo una secuencia de comandos ruby en mi carpeta de usuario llamada forecast.rb. Lo he configurado como ejecutable (a + x). Escribe una línea en otro archivo llamado .weather.txt.
Quiero ejecutar forecast.rb cada 5 minutos.
Tengo un archivo plist llamado com.jwhite.forecast_tmux.plist. Ese archivo se ve como:
<?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>
Este archivo se encuentra en ~ / Library / LaunchAgents. Y después de moverlo allí, ejecuté Launchctl load -w ~ / Library / Launchagents / com.jwhite.forecast_tmux.plist.
Si ejecuto forecast.rb (./forecast.rb) funciona bien. Pero mi launchd no se está ejecutando.
¿Qué me estoy perdiendo?
EDITAR:
Comencé a usar LaunchControl y obtuve el error.
/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>'
Pero cuando ejecuto esto desde el terminal, todo se ejecuta bien. ¿Entonces launchctl no puede leer en Ruby Gems?