Dmg Will Not Eject Because One Or More Programs May Be Using It

A few days ago Chris Pirillo compiled a list of 50 Reasons to Switch from PC to Mac. After discussing the topic with him, he informed me no one took up his challenge and he was looking for someone to do it. Well, I decided I’d give it a shot. I came up the following list, I did my best to make. Jul 03, 2017  External Hard Drives (WDs) won't eject since upgrade to El Capitan (10.11.2). It happens on my iMac and laptops. Pop up says other programs may be using the hard drive but that is not the case. I need to restart, with external still mounted; then I am able to eject. Bit of a pain.

One of the aspects where Macs differ from Windows PCs the most is when it comes to installing applications. On Macs, you need mount a disk image and then unmount it and delete once the installation is finished, which can be a bit of a hassle, especially if you have to test many apps in a short amount of time.

Thinking of that, this time we’ll share a couple of neat little workflows that you can implement on your Mac using Automator. With any of them, every time you are done with an app installation on your Mac, you’ll be able to eject/unmount and delete the disk image in just a couple of clicks.

Let’s get started with how to set up these nice Automator workflows.

Delete DMG Files Automatically When You Eject Them

Step 1: Open Automator and choose to create a new document. From the available document types that show up on the dialog box, select Service.

Step 2: At the top of the right panel, make sure to choose from the dropdown menus the options ‘no input’ and ‘Finder’ respectively so that the end result is as the one pictured below.

Step 3: Next, on the left panel of Automator, search for the Run AppleScript action and drag it to the right panel. An AppleScript window will show up with some placeholder code in it.

Delete that code and instead copy and paste the following one in the script box:

tell application 'Finder'
set selection_list to selection
if (count selection_list) < 1 then
display dialog ¬
'Please select a volume mounted from a disk image.' with title ¬
'No Selection Found' with icon stop ¬
buttons ['OK'] default button 1
return
end if
set my_selection to item 1 of selection_list
set my_kind to kind of my_selection
set my_name to name of my_selection
if my_kind is not 'Volume' then
display dialog ¬
'Please select a volume mounted from a disk image file.' with title ¬
'Selection is not a Disk Image' with icon stop ¬
buttons ['OK'] default button 1
return
end if
set volume_list to paragraphs of (do shell script 'hdiutil info | grep ^/dev/disk | grep -o '/Volumes/.*')
set source_list to paragraphs of (do shell script 'hdiutil info | grep ^image'-'alias | grep -o '/.*')
set match_found to false
repeat with v from 1 to (count volume_list)
if '/Volumes/' & my_name = item v of volume_list then
set match_found to true
exit repeat
end if
end repeat
if match_found is not equal to true then
display dialog ¬
'The selected volume does not appear to be a Disk Image.' with title ¬
'Could not find Disk Image' with icon stop ¬
buttons ['OK'] default button 1
return
else
set my_source to POSIX file (item v of source_list) as alias
move my_source to the trash
eject my_selection
--reveal my_source
end if
end tell

Step 4: Now save this Automator service and give it a name that is easy to remember.

Step 5: Once this is done, every time you have a disk image mounted, all you have to do is select it and on the Finder menu select Services and then Eject and Delete (or whatever you named the service you just created) and the disk image file will be both unmounted and deleted with one click.

Now, let’s take a look at another Automator workflow that achieves the same objective doing exactly the opposite.

Eject DMG Files Automatically When You Drag Them To the Trash

As you can see from the title, this Automator workflow allows you to achieve the same purpose, except that in reverse, so you can avoid this message every time you drag to the trash a mounted DMG file.

Here are the steps to create it.

Step 1: Create a new document in Automator and select Folder Action from the available document types.

Step 2: At the top of the right panel, select Other… from the dropdown menu. Then, on the dialog box that pops over, type ~/.Trash to work with that folder.

Programs

Step 3: Next, on the left panel, drag the Run Shell Script action to the right panel. On the two dropdown menus that show up, select /usr/bin/python and as arguments respectively.

Step 4: Replace the placeholder script in the script box with the following one:

import string, os, sys
lines = os.popen('hdiutil info').readlines()
should_eject = False
for line in lines:
if line.startswith('image-alias'):
path = line.split(':')[1]
image_path = path.lstrip().rstrip()
if image_path in sys.argv:
should_eject = True
elif line.startswith('/dev/') and should_eject is True:
os.popen('hdiutil eject %s' % line.split()[0])
should_eject = False
elif line.startswith('###'):
should_eject = False

Dmg Will Not Eject Because One Or More Programs May Be Using It Youtube

Once done, save the Folder Action and quit Automator. Now, whenever a DMG file is mounted, all you’ll have to do is drag it to the Trash and it will be unmounted at the same time.

Cool Tip: You can also create keyboard shortcuts for these actions by following the instructions at the end of this tutorial.

And there you go. Two different workflows to enable a very convenient feature on your Mac. Now all left to do is just choose which one you find more convenient. And the best of all? In both cases you’ll learn a bit more about Automator. Enjoy!

Also See#automation

Dmg Will Not Eject Because One Or More Programs May Be Using It Wrong

#OS X

Did You Know

In 1835, Thomas Davenport developed the first practical EV.

More in Mac

How to Record Your Screen with Zoom on Windows 10 and macOS

Hey there Damian Smith1,


It sounds like you have a process that is not allowing you to restart the computer or eject a DMG. I would use Activity Monitor to help identify the process that is stuck:



  1. Open Activity Monitor, in the Utilities folder in Launchpad.
  2. Select the process you want to quit.
  3. Click Quit Process.
  4. Do one of the following:
    • Click Quit. The process quits when it is safe to do so. If quitting the process could cause data loss or interfere with another application, the process doesn’t quit. This is the same as choosing File > Quit within an application.

    • Click Force Quit. The process quits immediately. If the process has open files, you may lose data. If the process is used by other applications or processes, those applications or processes could experience problems. To see if a process is used by another process, choose “All Processes, Hierarchically” from the Show pop-up menu in the toolbar.


Thank you for using Apple Support Communities.

Take care,

Sterling

Oct 22, 2014 11:39 AM