11

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

Joffo
  • 175
  • 1
  • 1
  • 9

1 Answers1

18

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
DNA
  • 42,007
  • 12
  • 107
  • 146
  • 2
    `script` is used for running multiple commands, I think in this case its better to use the `exec` stanza instead. Its actually quite similar to the above example: just drop the `script` parts and leave only `exec bash -c '/etc/kvm_manage start'`. Also, if kvm_manage is an executable with a she-bang, then you don't even need that, just use `exec /etc/kvm_manage start`. – Guss Apr 29 '14 at 05:59