জেনকিনস বিল্ড স্টেপে চিরকালের প্রক্রিয়া শুরু করছেন?


17

চিরকালের স্ক্রিপ্টটি পুনরায় চালু করতে আমি জেনকিন্স স্থাপনার শেষে শেল কমান্ডটি চালাচ্ছি:

npm install && forever stop app.js && forever start -a -l /var/log/forever.log app.js

যখন আমি এটি চালিত করি যে একজন ব্যবহারকারী হিসাবে জেনকিনস হিসাবে সবকিছু ঠিকঠাক কাজ করে এবং বিল্ড ইতিহাস থেকে কনসোল আউটপুটও আমাকে জানায় যে চিরতরে স্ক্রিপ্ট চলছে। যাইহোক, স্থাপনা সমাপ্ত হওয়ার পরে এবং চিরকালের প্রক্রিয়াটি বন্ধ হয়ে যাওয়ার পরে প্রক্রিয়াটি বন্ধ হয়ে যায়।

কী কারণে এই আচরণটি হয় এবং আমি কীভাবে এটি সংশোধন করতে পারি?

উত্তর:


28

জেনকিন্স কাজটি করে সমস্ত প্রক্রিয়া মেরে ফেলে।

এটি সেট করে অক্ষম করা যায় BUILD_ID অন্য কিছুতে পরিবেশের পরিবর্তনশীল :

export BUILD_ID=dontKillMe

দেখতে https://wiki.jenkins-ci.org/display/JENKINS/ProcessTreeKiller বিস্তারিত জানার জন্য


1
এটি করার একটি 'পরিষ্কার' উপায় বা অন্য কিছু প্রস্তাবিত?
প্যাট্রিক

যতদূর আমি জানি, এটি প্রক্রিয়াট্রি
কিলার


এর আগে পেয়ে যাচ্ছিলাম। [ssh- এজেন্ট] থামানো হয়েছে। সংকেত দ্বারা হত্যা 15. সংকেত দ্বারা হত্যা 15. এর পরে আমি পেয়েছি [এসএসএল-এজেন্ট]। তবে এটি এখনও নিহত হচ্ছে :(
অমিত কুমার গুপ্ত

1

প্রশ্নটি বেশ পুরানো, তবে আমি মনে করি এই ক্ষেত্রে আরও ভাল সমাধান হতে পারে।

ব্যবহারের পোস্ট-বিল্ড স্ক্রিপ্ট প্লাগ-ইন

প্লাগইনটি নিজেই ২০১ 2016 সালের শুরু থেকে আপডেট হয় না তবে এটি কাজ করে এবং আপনাকে পরিবেশের ভেরিয়েবলগুলির সাথে খাঁজ দিতে হবে না। আমার কাছে কিছুটা নিবিড় মনে হচ্ছে।


0

নতুন পাইপলাইন চাকরিতে, সেটিংস BUILD_IDআর কাজ করে না। পরিবর্তে, JENKINS_NODE_COOKIEকাজ শেষ হলে জেনকিন্সকে আপনার প্রক্রিয়াটি হত্যার হাত থেকে বাঁচানোর জন্য আপনাকে সেট করতে হবে।

sh 'export JENKINS_NODE_COOKIE=dontKillMe'
sh 'myProcess'

বা, আরও নির্বাচনীভাবে:

sh 'JENKINS_NODE_COOKIE=dontKillMe myProcess'

দেখুন ProcessTreeKiller উপর উইকি এবং জেনকিন্স জির মধ্যে এই মন্তব্যটি


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.