मेरे पास एक सर्वर शुरू होता है जो चलाने के लिए लॉन्च करने के लिए एक स्क्रिप्ट है, फिर लॉन्च होने पर इसे बंद करने के लिए इसे स्पष्ट रूप से बाहर निकलने के लिए कहता है (जो शटडाउन पर होना चाहिए)। मेरा सवाल: स्क्रिप्ट को सिग्नल होने तक निष्क्रिय होने के लिए उचित, बेवकूफ तरीका क्या है? क्या मुझे बस कुछ समय-सही-नींद-1 लूप का उपयोग करना चाहिए, या ऐसा करने का कोई बेहतर तरीका है?बैश - मुझे संकेत मिलने तक निष्क्रिय कैसे होना चाहिए?
#!/bin/bash
cd "`dirname "$0"`"
trap "./serverctl stop" TERM
./serverctl start
# wait to receive TERM signal.
'जबकि:; सो जाओ 1; किया 'मेरे लिए ठीक लगता है। – choroba
क्या आप 'serverctl' द्वारा उत्पन्न प्रक्रिया का पीआईडी प्राप्त कर सकते हैं? 'Jobs -p' या 'pgrep -P' के साथ? –
वास्तविक सर्वर प्रक्रिया 'स्क्रीन' सत्र में चल रही है। इसका इंतजार करना एक बुरा विचार नहीं हो सकता है, ताकि एक अप्रत्याशित निकास इस स्क्रिप्ट को समाप्त कर दे और लॉन्च हो जाए कि प्रक्रिया कम हो गई है। दूसरी ओर, यह पंद्रह महीने हो गया है और यह ठीक काम कर रहा है। :- पी –