2013-12-10 20 views
10

Vorrei eseguire il mio script bash (kvm_manage) all'avvio e non funziona. Ecco il mio upstart sceneggiatura Conf:Esecuzione di script bash in upstart .conf script

 description "kvm start skript" 

     start on local-filesystem 
     stop on shutdown 

     respawn 

     script 
     exec /etc/kvm_manage start 
     end script 

voglio eseguirlo con argomento "start". È possibile? Cosa dovrei cambiare?

grazie per aiuto

risposta

17

esecuzione di un comando tramite exec con argomenti va bene - vedi http://upstart.ubuntu.com/wiki/Stanzas#exec che dà un esempio.

Tuttavia, upstart utilizzerà /bin/sh non bash, quindi se lo script ha bisogno di bash avresti bisogno di qualcosa come

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

Aggiornamento: Vedi anche il suggerimento nei commenti da Guss per usare il exec strofa invece per i casi semplici:

exec bash -c '/etc/kvm_manage start' 

o se kvm_manage è un eseguibile con una lei-bang (#!/bin/bash), poi semplicemente:

exec /etc/kvm_manage start 
+0

grazie mille :) Il suo lavoro – Joffo

+2

'script' viene utilizzato per l'esecuzione di comandi multipli, penso che in questo caso è meglio usare la strofa' exec' invece. In realtà è abbastanza simile all'esempio precedente: basta rilasciare le parti 'script' e lasciare solo' exec bash -c '/ etc/kvm_manage start''. Inoltre, se kvm_manage è un eseguibile con una she-bang, non è nemmeno necessario, basta usare 'exec/etc/kvm_manage start'. – Guss

+0

Sì, buon punto. – DNA