2016-09-12 10 views
1

В установленном Sleepwatcher 2.2 на OS X 10.11 и запуске его через LaunchD в качестве агента.Sleepwatcher на OS X 10.11 не выполняет сценарий по следу

Он запускается нормально и отображается на мониторе активности.

Однако, я хочу, чтобы он запускал скрипт python, когда компьютер просыпается.

Мои команды установки следующие.

sudo mkdir -p /usr/local/sbin /usr/local/share/man/man8 
sudo cp ~/Desktop/sleepwatcher_2.2/sleepwatcher /usr/local/sbin 
sudo cp ~/Desktop/sleepwatcher_2.2/sleepwatcher.8 /usr/local/share/man/man8 
sudo cp ~/Desktop/sleepwatcher_2.2/sleepwatcher/config/rc.sleep /etc 
sudo cp ~/Desktop/sleepwatcher_2.2/sleepwatcher/config/rc.wakeup /etc 
sudo cp ~/Desktop/sleepwatcher_2.2/sleepwatcher/config/de.bernhard-baehr.sleepwatcher-20compatibility-localuser.plist /Library/LaunchAgents 

chmod +x /etc/rc.sleep 
chmod +x /etc/rc.wakeup 
chmod +x /usr/local/bin/test.py 

Мой файл rc.wakeup выглядит следующим образом.

#!/bin/sh 
/usr/local/bin/python3 /usr/local/bin/test.py 

При выполнении Sleepwatcher в terimnal окне, введя следующее, он работает.

/usr/local/sbin/sleepwatcher --verbose --wakeup /usr/local/bin/test.py 

Однако при попытке запустить его в качестве элемента запуска под запуск программ, это не похоже на работу выполнить мой питон скрипт.

У меня есть поиск по всему и не могу понять, почему он не работает при запуске в LaunchD.

Неужели кто-нибудь сталкивался с этим типом проблемы?

Заранее спасибо.

+0

Да, я ввел команду в chmod + x /etc/rc.sleep. Я не знаю, почему было лишнее место наверху. – user1709730

+0

Кажется, что вам не хватает регистрации plist, который необходим для запуска 'sleepwatcher' и фактически вызывать скрипты'/etc/rc.sleep' и '/ etc/rc.wake', когда сон и бодрствование события происходят. – Petesh

+0

Привет, Petesh, вместо того, чтобы запускать загрузку /Library/LaunchAgents/de.bernhard-baehr.sleepwatcher-20compatibility-localuser.plist, я перезагрузил сервер. Это также должно забрать его, что и есть. Знаете ли вы, есть ли какие-либо журналы, которые остались позади, чтобы я мог увидеть, что потенциально может вызвать ошибку либо во время загрузки, либо во время выполнения скрипта во время события бодрствования? – user1709730

ответ

0

Я столкнулся с подобными проблемами, поэтому я использовал другой подход, используя другой инструмент с открытым исходным кодом под названием Hammerspoon. Он может обеспечить автоматизацию кучу вещей на MacOS, включая события сна/бодрствования. Это довольно просто, чтобы повторить функциональность sleepwatcher, добавив следующее Hammerspoon-х ~/.hammerspoon/init.lua (или создать «ложка») скрипт, который срабатывает, когда машина просыпается или спит и вызывает соответствующие пробуждения и сна скрипты sleepwatcher:

function caffeinateWatcher(eventType) 
    if (eventType == hs.caffeinate.watcher.systemWillSleep or 
      eventType == hs.caffeinate.watcher.systemWillPowerOff) then 
      print ("WillSleep...") 
     -- sleep:start() 
       hs.task.new("/etc/rc.sleep", nil):start() 
    elseif (eventType == hs.caffeinate.watcher.systemDidWake) then 
     print ("Woken...") 
     -- wake:start() 
       hs.task.new("/etc/rc.wake", nil):start() 
    end 
end 

sleepWatcher = hs.caffeinate.watcher.new(caffeinateWatcher) 
sleepWatcher:start() 

Примечание если вы хотите, чтобы Hammerspoon запускал сценарии оболочки, вам нужно убедиться, что они начинаются со стандартного заголовка оболочки bash #!/bin/bash.

 Смежные вопросы

  • Нет связанных вопросов^_^