2017-05-15 10 views
8

मैं अपने सर्वर में एक डॉकर डिमन चल रहा है या नहीं, यह जांचने के लिए एक बैश उपयोगिता स्क्रिप्ट बनाने की कोशिश कर रहा हूं। क्या इस तरह के कोड चलाने के अलावा मेरे सर्वर में डॉकर डिमन चल रहा है या नहीं, यह जांचने का एक बेहतर तरीका है?कैसे जांचें कि डॉकर डिमन चल रहा है या नहीं?

ps -ef | grep docker 
root  1250  1 0 13:28 ?  00:00:04 /usr/bin/dockerd --selinux-enabled 
root  1598 1250 0 13:28 ?  00:00:00 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --shim docker-containerd-shim --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --runtime docker-runc 
root  10997 10916 0 19:47 pts/0 00:00:00 grep --color=auto docker 

मैं एक bash खोल स्क्रिप्ट है कि अगर मेरी डोकर डेमॉन चल रहा है की जाँच करेगा बनाने के लिए करना चाहते हैं। यदि यह चल रहा है तो कुछ भी नहीं करें लेकिन अगर ऐसा नहीं है तो डॉकर डिमन शुरू हो गया है।

मेरे स्यूडोकोड कुछ इस तरह है। मैं अपने ps -ef के आउटपुट को पार्स करने की सोच रहा हूं लेकिन मैं सिर्फ यह जानना चाहता हूं कि मेरे छद्म कोड को करने का एक और अधिक प्रभावी तरीका है या नहीं।

अगर (डोकर नहीं चल रहा है)

  run docker 

अंत

पी.एस. मैं कोई लिनक्स विशेषज्ञ नहीं हूं और मुझे बस अपने पर्यावरण पर इस उपयोगिता की आवश्यकता है।

उत्तर

4

आप एक उपयोगिता लगभग सभी Linux सिस्टम पर pgrep कहा जाता है।

तुम सिर्फ कर सकते हैं:

pgrep -f docker > /dev/null || echo "starting docker" 

अपने डोकर आदेश शुरू करने के साथ बदलें `गूंज आदेश।

0

एक समारोह कर सकते थे तो लग रहा है:

isRunning { 
    `ps -ef | grep "[d]ocker" | awk {'print $2'}` 
} 

मैं कोई स्क्रिप्ट बनाने, शुरू रोक, एक MongoDB-सर्वर को पुनः आरंभ करने के लिए। आप केवल स्क्रिप्ट के अंदर कुछ पथ को बदलने की जरूरत है, और मैं भी आप के लिए काम करता है: Script

+0

'ps -सी डोकर -opid =' –

1

आप, साथ ही /var/run/docker.pid

1

के अस्तित्व मैं एक छोटे से स्क्रिप्ट (मैक OSX) सुनिश्चित करने के लिए डोकर docker stats के निकास कोड की जाँच करके चल रहा है बनाया के लिए जाँच कर सकते हैं।

#!/bin/bash 
#Open Docker, only if is not running 
if (! docker stats --no-stream); then 
    # On Mac OS this would be the terminal command to launch Docker 
    open /Applications/Docker.app 
#Wait until Docker daemon is running and has completed initialisation 
while (! docker stats --no-stream); do 
    # Docker takes a few seconds to initialize 
    echo "Waiting for Docker to launch..." 
    sleep 1 
done 
fi 

#Start the Container.. 
संबंधित मुद्दे

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