मैं बैकपार्ट्स से PostgreSQL 9.1 के साथ डेबियन निचोड़ का उपयोग कर रहा हूं। कठपुतली का संस्करण 2.7.14 है। दुर्भाग्य से init स्क्रिप्ट स्थिति के लिए गलत निकास कोड लौटाता है। इसलिए मैंने statusयह पता लगाने के लिए एक कस्टम कमांड लिखी कि क्या पोस्टग्रैसिकल चल रहा है या नहीं।
service { 'postgresql':
ensure => running,
enable => true,
hasstatus => false,
hasrestart => true,
status => "pg_lsclusters -h | awk 'BEGIN {rc=0} {if ($4 != \"online\") rc=3} END { exit rc }'",
provider => debian,
}
मेरी आज्ञा एक आकर्षण की तरह काम करती है, लेकिन कठपुतली को एक समस्या है। मैं हमेशा मिलता हूं, notice: /Stage[main]/Postgresql/Service[postgresql]/ensure: ensure changed 'stopped' to 'running'हालांकि यह पहले से ही चल रहा है।
तो निम्नलिखित की कोशिश की:
service { 'postgresql':
ensure => running,
enable => true,
hasstatus => false,
hasrestart => true,
status => "exit 0",
provider => debian,
}
जैसा कि मैंने इस कस्टम statusकमांड को समझा , कठपुतली को हमेशा यह सोचना चाहिए कि पोस्टग्रैस्कल चल रहा है। फिर भी कठपुतली हर बार पोस्टग्रैक्स्ल शुरू करने की कोशिश करती है।
मेरी गल्ती क्या है? या यह कठपुतली में बग है?
statusके साथ कठपुतली की कमान उम्मीद के मुताबिक काम करती है!
provider => init(औरenableपैरामीटर को हटा दें )।