У меня есть Mac mini с сервером Mavericks. Я установил Atmail server + webmail vm [дистрибутив Linux centos] в VMware Fusion Professional 6 с надстройкой VMware Tools. Работает безупречно. Я настроил его на запуск при загрузке, и он работает очень надежно. Однако я искал способ также безопасно и изящно выключать его всякий раз, когда OS X завершает работу по какой-либо причине. Mac подключен к ИБП и настроен на автоматическое выключение в случае разрядки батареи, так что дополнительных проблем нет.
Теперь первое, что я сделал, - это зашел в настройки Fusion и выбрал «Power off the vm» при его закрытии. Однако я заметил, что по какой-то загадочной причине закрытие окна vm на самом деле принудительно отключило vm: так что я нашел это Почта это показало мне, как изменить параметры питания по умолчанию, и мне удалось полностью отключить виртуальную машину при закрытии ее окна или полном выходе из Fusion. На этом этапе я надеялся решить проблему, но, как оказалось, при вызове выключения системы OS X не дожидается завершения работы виртуальной машины и завершает работу Fusion, прежде чем у нее появится возможность сделать это. На этом этапе я начал искать способ автоматизировать процесс выключения гостевой ОС с помощью некоторых дополнительных настроек, но мне это не удалось. Тогда я нашел команду для выключения виртуальной машины: vmrun
и это сработало. Осталось только найти способ запустить этот скрипт при завершении работы os x и дать ему немного времени для полного отключения. Однако это оказалось кошмаром: я часами просматривал несколько способов сделать это с помощью Startup Items, rc.shutdown, cron, launchd и т. Д., Но ни один из них не работал так, как я их настроил.
Я должен сказать, что нашел очень ограниченную информацию об использовании launchd для выполнения сценария выключения, и я знаю, что это последняя разработка в мире OS X, поэтому я надеюсь, что кто-то из вас сможет мне с этим помочь. Я по-прежнему считаю, что это чрезвычайно простая функция, о которой нужно просить, и я был очень удивлен, обнаружив эту небольшую документацию по стольким различным аспектам этой проблемы. Fusion - слишком простое приложение для этого?
Я очень надеюсь, что кто-то может помочь. Заранее большое спасибо.
Вы пробовали использовать метод, описанный в этом ответе, в stackoverflow ?: -
https://stackoverflow.com/questions/16542301/running-a-shell-script-on-shutdown-via-launchd
Обычно вы запускаете сценарий при запуске машины, который прослушивает SIGTERM, а затем запускает нужную команду, когда ее получает.
Вы установили инструменты vmware? Я могу заставить мою гостевую виртуальную машину выключиться, когда я сам выключаю компьютер, однако, когда компьютер выключается из-за команды выключения батареи ИБП, он ее не передает.