मैं जेनकींस घोषणात्मक पाइपलाइन का उपयोग करके पृष्ठभूमि में जावा प्रक्रिया चलाने का एक तरीका ढूंढ रहा हूं। नीचे कोड का स्निपेट है
stage('Deploy'){
steps{
script{
withEnv(['BUILD_ID=dontkill']) {
sh "nohup java -jar test-0.0.1-SNAPSHOT.war &"
}
}
}
}
पहले से ही जेनकिंस के ProcessTreeKiller के बारे में पता है और हर उत्तर एक ही करने का सुझाव देता है। मैंने बिना किसी भाग्य के चरणों के ब्लॉक के अंदर पर्यावरण का उपयोग करने की कोशिश की है।
जेनकिंस संस्करण: 2.60.1
पाइपलाइन प्लगइन: 1.1.7
कोई भी मदद बहुत ही सराहनीय होगी।
क्या होता है? त्रुटि संदेश? मौन विफल?
—
बी लेयर
मेरे पास रनिंग जावा प्रक्रिया नहीं है। यह मेरी पाइपलाइन का अंतिम चरण है इसलिए मेरा अनुमान है कि जेनकिन्स इसे शुरू करता है और अगले ही पल इसे समाप्त कर देता है।
—
धरणीधर
जब आप सीधे गुलाम पर कमांड चलाते हैं तो क्या होता है? एजेंट / स्लेव होस्ट में प्रवेश करें, नौकरी के कार्यक्षेत्र पर जाएं (या अगर यह युद्ध की फाइल में कहीं मैन्युअल रूप से कॉपी किया गया था ...
—
बी लेयर
/tmp
उदाहरण के लिए), और डबल-कोट्स के बीच सब कुछ चलाएं।
इसके अलावा, अगर शेल्फ़ कमांड जो भी डायरेक्टरी में होता है, उसमें nohup.out नामक फ़ाइल के लिए कार्यक्षेत्र को मिटाया नहीं जाता है। जब आउटपुट अन्यथा पुनर्निर्देशित नहीं होता है, तो nohup स्वचालित रूप से ऐसी फ़ाइल में लॉग इन करता है।
—
बी लेयर
@BairM उसी स्क्रिप्ट को ठीक से चलाता है जब मैं एक गैर-लॉगिन गैर-इंटरैक्टिव शेल के माध्यम से जेनकींस उपयोगकर्ता के साथ प्रयास करता हूं। दोहरे उद्धरण चिह्नों में दौड़ने से कोई फर्क नहीं पड़ता। nohup.out मौजूद है लेकिन यह 0 KB है।
—
धरणीधर