Я хочу периодически запускать команду на основе рубинового драгоценного камня. Я использую 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 и почему файл не работает должным образом?
Похоже, что ошибка 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