Question: I have the following script, how do I run it on shutdown in debian linux? (don't want to use GUI)

```
#!/bin/bash
vms=$(vmrun list | grep '/');
for vm in ${vms}
do
        echo 'suspending ' $vm
        vmrun suspend $vm soft
done

```

I tried adding it to /usr/local/bin with chmod +x permissions. Then I created symbolic links to rc0.d (shutdown) and rc6.d (reboot).

I then did update-rc.d shutdown\_vms 0 6 .

When I do shutdown -r now, it switches to console mode to restart....at that point I can see a error message stating shutdown\_vms has failed.

I this the proper way to install the shutdown script and why is it failing (where do I look in the logs?)

Edit:
I used the command update-rc.d -f shutdown\_vms start 0 0 6 .

When I look at the start up list for rc0.d (shutdown), i see that both shutdown\_vms, vmware, and gdm are all order of 0. I think if gdm fires before shutdown\_vms, it will kill the vms. I think this is what's happening because when I log the number of vms running when the script executes, it logs 0. 

Can I change the order of gdm/vmware to 1 so that shutdown\_vms run first?

Answer: 
This looks like you should put it into a proper init-script as "stop" method. Your current script propably fails, because of an exit-code that is not equal to zero.

Apart from that you should enclose "$()" because your list of vms propably contains white space.

Test your script by `sh -x YOURSCRIPT stop`.
Hmmmm...It would be nice if the failure output could be shown. This would likely easily clearup some things.

One other thought, try putting in a PATH statement right after #!/bin/sh. 

```
 #! /bin/sh
 PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:.....<anything else you need>
 export PATH
 .
 .   (rest of script)
 .
 exit 0

```

I'm not familiar with vmlist.