2010-10-28 7 views
4

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

# 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 
+0

Вы повторно устанавливаете тот же самый плагин браузера? –

+0

Программа делает некоторые другие вещи, что делает ее полезной :) Она загружает другую версию плагина и запускает некоторые тесты. –

ответ

8

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

+0

Спасибо за ответ, я делаю снимок. (Его трудно сказать, если он работает, поскольку проблема иногда занимает несколько дней, чтобы проявить себя, не так, как каждый цикл добавляет процесс diskimages) –

+1

Эй, Гордон, я, наконец, обойдусь, чтобы попробовать ваше предложение, и, похоже, это работает :) спасибо –

+0

Это весьма неудачно, что 'mount' является синонимом' attach', но 'unmount' не является синонимом' detach'. Это сработало, медленно заполнил '/ dev' записи' disk * ', что в конечном итоге привело к ошибке' no mountable file systems'. Перезагрузка, чтобы очистить записи '/ dev/disk *' и использовать 'attach' /' detach' вместо 'mount' /' unmount', похоже, решила проблему. – dimo414