मैं एक स्क्रिप्ट से एक डेमन के समान प्रक्रिया को चलाना और कॉन्फ़िगर करना चाहूंगा।
मेरा खोल Cygwin के तहत zsh है और डेमॉन SFK , एक मूल एफ़टीपी सर्वर है।
यहाँ क्या मायने रखता है, इसके लिए स्क्रिप्ट startserv.shको प्रारूपित किया जा सकता है:
#!/bin/sh
read -s -p "Enter Password: " pw
user=testuser
share=/fshare
cmd="sfk ftpserv -user=$user -pw=$pw -usedir $share=$share"
$cmd &
स्क्रिप्ट चलाने के बाद startserv.sh, यह बिना किसी संकेत के, बिना रुके समाप्त हो जाता है, फिर:
CTRL+ Cस्क्रिप्ट और पृष्ठभूमि नौकरी प्रक्रिया दोनों को समाप्त करता है;
Enterस्क्रिप्ट को हिट करने से पृष्ठभूमि में प्रक्रिया समाप्त हो जाती है।
वैसे भी मैं इसे केवल के माध्यम से देख सकता हूं psऔर नहीं jobs, इसलिए, जब मैं इस प्रक्रिया को बंद करना चाहता हूं, तो मुझे एक क्रूर kill -9संकेत भेजना होगा , जो कि मैं CTRL+ के पक्ष में बचना चाहता हूं C।
एक वैकल्पिक पृष्ठभूमि में पूरी स्क्रिप्ट चल रही होगी । 'होगा', लेकिन readस्क्रिप्ट के रूप में चलाने पर कमांड को उपयोगकर्ता इनपुट नहीं मिल पाता है startserv.sh &।
ध्यान दें कि मुझे एक अल्पकालिक सर्वर की आवश्यकता है, एक सच्चा डेमॉन नहीं : अर्थात, मैं चाहता हूं कि सर्वर प्रक्रिया पृष्ठभूमि में चलने के बाद, स्क्रिप्ट समाप्त होने के बाद, सरल इंटरैक्टिव शैल कार्यों (एक वर्चुअल मशीन अतिथि के साथ) करने के लिए, लेकिन मैं डॉन ' टी को जीवित रहने के लिए प्रक्रिया की आवश्यकता है; इसलिए nohupउचित नहीं लगता।
bgproc="$!"और फिरcommand "$bgproc"उचित कार्रवाई करें। यह भी देखें stackoverflow.com/questions/1908610/…