मैं अंदर सिर्फ एक बैश स्क्रिप्ट के साथ डॉकर उबंटू कंटेनर चला रहा हूं।क्यों डॉकर निष्पादन बाहर निकलने पर नोहप प्रक्रिया को मार रहा है?
docker exec -it 0b3fc9dd35f2 ./main.sh
मुख्य स्क्रिप्ट के अंदर
मैं जैसा कि यह एक लंबी चलने वाली अनुप्रयोग है nohup के साथ एक और आवेदन चलाना चाहते हैं:
#!/bin/bash
nohup ./java.sh &
#with this strange sleep the script is working
#sleep 1
echo `date` finish main >> /status.log
जावा मैं उस तरह डोकर कार्यकारी के साथ अपने आवेदन कि कंटेनर के अंदर शुरू करना चाहते हैं .sh स्क्रिप्ट के रूप में अनुवर्ती है (सादगी के लिए यह एक डमी स्क्रिप्ट है):
#!/bin/bash
sleep 10
echo `date` finish java >> /status.log
समस्या यह है कि java.sh डोकर कार्यकारी रिटर्न के तुरंत बाद मार डालता है। सवाल यह है कि क्यों?
मुझे पता चला कि एकमात्र समाधान कुछ डमी sleep 1
को दोबारा शुरू होने के बाद पहली स्क्रिप्ट में जोड़ना है। दूसरी प्रक्रिया से ठीक चल रहा है। क्या आपके पास कोई विचार है कि ऐसा क्यों है?
[संपादित करें]
दूसरा समाधान सिर्फ सोने से पहले कुछ echo
या trap
आदेश java.sh
लिए स्क्रिप्ट जोड़ने की है। यह ठीक काम करता है। दुर्भाग्य से मैं इस वर्कअराउंड का उपयोग इस स्क्रिप्ट के बजाय जावा प्रक्रिया नहीं कर सकता।
आप 'डोकर exec' के साथ एक कंटेनर शुरू नहीं है, लेकिन साथ एक 'डॉकर रन' और आपको डू में निर्देश 'सीएमडी' और 'एंटरपॉइंट' निर्देशों पर नज़र रखना चाहिए ckerfile – user2915097
मैं पहले से ही विभिन्न प्रक्रिया के साथ कंटेनर चला रहा है। डॉकर exec के साथ मैं एक दूसरा शुरू करना चाहता हूँ। यह एकीकरण परिदृश्य जारी है इसलिए हम एक कंटेनर में और अधिक प्रक्रियाएं चाहते हैं। –