Lately I’ve been using VirtualBox VMs, both managed by Vagrant and otherwise, quite a lot. I’ve also been doing a bunch of development work with them. And inevitably, I close a screen window and fo on with my work and end up with a few “orphaned” virtualbox VMs running that I’ve forgotten about.

Below is the snippet I’ve added to my ~/.bashrc to keep me aware of this situation. Unfortunately the vagrant global-status command is relatively slow, so this adds (on my machine) about 1.5 seconds of wall-clock time to my .bashrc (hence the process check first).

# Vagrant/VirtualBox reminder
if pgrep VBoxHeadless &>/dev/null; then
    vblist=$(VBoxManage list runningvms)
    [ -n "${vblist}" ] && echo -e "\e[1;31mRunning VirtualBox VMs:\e[0m\n${vblist}\n"
    if which vagrant &> /dev/null && vagrant help | grep -q global-status; then
        vagrantstatus=$(vagrant global-status | sed '/^\s*$/q')
        echo "$vagrantstatus" | grep -q running && { echo -e "\e[1;31mRunning Vagrant Machines:\e[0m" ; echo "$vagrantstatus" | head -2; echo "$vagrantstatus" | grep running; }


comments powered by Disqus