run
используется Capistrano и другими устройствами для запуска команд, но вместо этого Rake часто использует Kernel#system
.
Возможно, ваша команда выполняется, но не работает. Почему бы не создать скрипт оболочки-обертки, который вы можете протестировать самостоятельно, или попробовать запустить его по полному пути:
newsletter_script = File.expand_path('ar_sendmail', RAILS_ROOT)
if (File.exist?(newsletter_script))
unless (system(newsletter_script + ' -o -t NewsLetters -v &'))
STDERR.puts("Script #{newsletter_script} returned error condition")
end
else
STDERR.puts("Could not find newsletter sending script #{newsletter_script}")
end
Было бы странно, если бы ваш скрипт не был в scripts/
Вызов system
должен вернуть true
в случае успеха. Если это не так, либо скрипт вернул код ошибки, либо команда не может быть выполнена.