Ошибка создания задачи запуска Ruby с помощью RVM в OS X

Я хочу периодически запускать команду ruby ​​gem. Я использую RVM и следую инструкциям, изложенным здесь.

Моя рубиновая задача называется daily_checks.rb и выглядит следующим образом:

#!/usr/bin/env ruby
puts 'in here'
Dir.chdir('/Users/Chris/Documents/Sites/mentor') do
  audit = `bundle-audit`
  system(%(osascript -e 'display notification "#{audit}" with title "bundle-audit"'))
end

Я настроил псевдоним RVM и файл Bash на /usr/local/bin/regular_checks.sh

/Users/Chris/.rvm/wrappers/regular_checks/ruby /Users/Chris/Documents/Sites/mentor/script/daily_checks.rb

Когда я бегу /usr/local/bin/regular_checks.sh тогда файл ruby ​​выполняется и успешно работает.

Затем я настроил список /Users/Chris/Library/LaunchAgents/local.temp.plist

<?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>Disabled</key>
    <false/>
    <key>EnvironmentVariables</key>
    <dict>
        <key>PATH</key>
        <string>/bin:/usr/bin:/usr/local/bin</string>
    </dict>
    <key>Label</key>
    <string>local.temp</string>
    <key>LaunchOnlyOnce</key>
    <false/>
    <key>Program</key>
    <string>/usr/local/bin/regular_checks.sh</string>
    <key>RunAtLoad</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/tmp/test.stderr</string>
    <key>StandardOutPath</key>
    <string>/tmp/test.stdout</string>
    <key>StartInterval</key>
    <integer>300</integer>
</dict>
</plist>

Когда я запускаю это задание с помощью launchControl, задание, по-видимому, завершается с ошибкой 78. puts 'in here' в рубиновом файле не выполняется.

Права доступа к файлам выглядят так же, как и в учебнике, т.е.

-rwxr--r--  1 Chris  staff   699 24 Nov 20:16 local.temp.plist
-rwxr-xr-x  1 Chris  admin  111 24 Nov 20:10 /usr/local/bin/regular_checks.sh
-rwxr-xr-x  1 Chris  admin   207 25 Nov 13:38 daily_checks.rb

Что такое ошибка 78 и почему файл не работает должным образом?

1 ответ

Решение

Похоже, что ошибка 78 в том, что /usr/local/bin/regular_checks.sh файл не имеет #!/bin/bash как первая строка. Полное содержание файла должно быть

#!/bin/bash
/Users/Chris/.rvm/wrappers/regular_checks/ruby /Users/Chris/Documents/Sites/mentor/script/daily_checks.rb
Другие вопросы по тегам