В моей системе MacOS 10.13 у меня есть скрипт bash, запускаемый как LaunchDaemon (в /Library /LaunchDaemons) каждую минуту, чтобы проверить, работает ли виртуальная машина Ubuntu в VMware Fusion. (В случае отключения электричества или чего-то еще, я должен войти в систему как я, чтобы снова запустить ВМ.) У меня есть Postfix, настроенный для передачи моему провайдеру электронной почты. Мой скрипт отлично работает при запуске в процессе переднего плана, либо в качестве обычного пользователя, либо в качестве пользователя root, что приводит к тому, что я отправляю или не отправляю мне электронные письма соответствующим образом, но при запуске launchd он просто не отправляет мне почту. Я следил за /var/log/mail.log и не вижу ничего, кроме обычных сообщений запуска и выхода демона. Я также проверил, что статус возврата почтовой команды равен 0, отражая ее в файле журнала. Любые предложения о том, что происходит, или как отлаживать дальше?
Мой список в / Библиотека / LaunchDaemons:
<?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.planetexpress.checkvmware</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/checkvmware</string>
</array>
<key>StartInterval</key>
<integer>60</integer>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Мой сценарий:
#!/bin/bash
touch /tmp/checkvmware
checkline="/path/to/vm.vmx"
vmwareline=$(pgrep -if "$checkline")
if [[ -z $vmwareline ]]; then
/usr/bin/mail -s "Alert: Ubuntu on VMware isn't running" bbrodriguez@planetexpress.com <<< 'Are you even logged in, bro?'
mystatus=$?
echo "Status of mail command: $mystatus" >> /tmp/checkvmware.log
fi