Ошибка при отключении тома с помощью hdiutil на OS X - PullRequest
4 голосов
/ 28 октября 2010

У меня есть программа, которая работает на Mac OS 10.5.8. Программа выполняет непрерывный цикл, где монтирует изображение, устанавливает плагин для браузера и снова размонтирует изображение. Если я оставлю эту программу работающей, я в конечном итоге окажусь в ситуации, когда я получаю следующую ошибку «fork: resource временно недоступен». В мониторе активности я вижу, что запущено несколько сотен процессов, называемых diskimages-helper. Кто-нибудь знает, почему это происходит и как я могу этого избежать? Ниже приведены команды, которые я использую во время одного цикла программы.

# First I remove the plugin
rm -rf "/Library/Internet Plug-Ins/my.plugin"

# If the mount exists I unmount it
hdiutil unmount [mount] -force

# If that doesnt work I detach the device
hdiutil detach [device] -force

# Then I mount the image
hdiutil mount [image]

# I install the plugin
installer -package [package] -target /

# Unmount
hdiutil unmount [mount] -force

# And if necessary detach
hdiutil detach [device] -force

1 Ответ

8 голосов
/ 29 октября 2010

Вам необходимо всегда отсоединять образ диска - при размонтировании он отключает файловую систему, но оставляет образ диска присоединенным к записи / dev / disk *, а для его обработки запущен вспомогательный процесс diskimages-helper.Обратите внимание, что hdiutil detach позаботится о размонтировании тома для вас (при условии, что дисковый арбитраж работает), поэтому вы можете просто пропустить этап размонтирования.

...