2013-12-10 24 views
10

में बैश स्क्रिप्ट चलाना मैं स्टार्टअप में अपनी बैश स्क्रिप्ट (kvm_manage) चलाऊंगा, और यह काम नहीं करता है। यहां मेरा अपस्टार्ट .conf स्क्रिप्ट है:अपस्टार्ट .conf स्क्रिप्ट

 description "kvm start skript" 

     start on local-filesystem 
     stop on shutdown 

     respawn 

     script 
     exec /etc/kvm_manage start 
     end script 

मैं इसे तर्क "प्रारंभ" के साथ चलाऊंगा। हो सकता? मुझे क्या बदलना चाहिए? http://upstart.ubuntu.com/wiki/Stanzas#exec जो इस तरह के एक उदाहरण देता है देखते हैं - मदद

उत्तर

17

तर्क के साथ exec के माध्यम से एक आदेश चल रहा है के लिए

धन्यवाद ठीक है। भी देखें Guss से टिप्पणी में सुझाव exec छंद उपयोग करने के लिए:

हालांकि, नवोदय /bin/sh नहीं bash, इसलिए यदि आपकी स्क्रिप्ट बैश की जरूरत है आप

की तरह कुछ आवश्यकता होगी
script 
    exec bash -c '/etc/kvm_manage start' 
end script 

अद्यतन का उपयोग करेगा बजाय साधारण मामलों के लिए:

exec bash -c '/etc/kvm_manage start' 

या अगर kvm_manage एक वह-बैंग (#!/bin/bash) तो बस के साथ एक निष्पादन योग्य है:

exec /etc/kvm_manage start 
+0

बहुत बहुत शुक्रिया :) इसका काम कर – Joffo

+2

'script' कई आदेशों को चलाने के लिए प्रयोग किया जाता है, मैं इस मामले में अपनी बेहतर में लगता है कि बजाय' exec' छंद उपयोग करने के लिए। यह वास्तव में उपरोक्त उदाहरण के समान ही है: बस 'स्क्रिप्ट' भागों को छोड़ दें और केवल 'exec bash -c'/etc/kvm_manage start'' छोड़ दें। इसके अलावा, अगर kvm_manage एक-बैंग के साथ निष्पादन योग्य है, तो आपको इसकी आवश्यकता भी नहीं है, बस 'exec/etc/kvm_manage start' का उपयोग करें। – Guss

+0

हां, अच्छा बिंदु। – DNA

संबंधित मुद्दे