Running bash script in upstart .conf script

Joffo picture Joffo · Dec 10, 2013 · Viewed 17.7k times · Source

I would like run my bash script (kvm_manage) in startup, and it doesnt work. Here is my upstart .conf script:

      description "kvm start skript"

      start on local-filesystem
      stop on shutdown

      respawn 

      script
         exec /etc/kvm_manage start
      end script

I want run it with argument "start". It is possible? What should I change?

thanks for help

Answer

DNA picture DNA · Dec 10, 2013

Running a command via exec with arguments is fine - see http://upstart.ubuntu.com/wiki/Stanzas#exec which gives such an example.

However, upstart will use /bin/sh not bash, so if your script needs bash you'd need something like

script
    exec bash -c '/etc/kvm_manage start'
end script

Update: See also the suggestion in the comments from Guss to use the exec stanza instead for simple cases:

exec bash -c '/etc/kvm_manage start'

Or if kvm_manage is an executable with a she-bang (#!/bin/bash), then simply:

exec /etc/kvm_manage start