কেন আপস্টার্ট আমার প্রক্রিয়াটি পুনরায় শোধ করে রাখে?


19

আমি টিএমউস সেশনের অভ্যন্তরে একটি ডেমন চালু করতে একটি আপস্টার্ট স্ক্রিপ্ট লিখেছিলাম। এটি ভালভাবে কাজ করে এবং যদি অপ্রত্যাশিতভাবে মারা যায় তবে প্রক্রিয়াটি পুনরায় প্রত্যাবর্তন করে তবে আমি নিজে এটি বন্ধ করে দিতে পারি না।

কাজটি (বুক্কিট নামে পরিচিত) এর মতো দেখাচ্ছে:

start on filesystem
stop on runlevel [!2345]

respawn
respawn limit 5 30

chdir /home/minecraft/bukkit

expect daemon
kill timeout 30

pre-start script
    test -x /home/minecraft/bukkit/craftbukkit-0.0.1-SNAPSHOT.jar || { stop; exit 0; }
end script

pre-stop script
    tmux send -t bukkit "stop"
    tmux send -t bukkit "Enter"
    sleep 10  # Wait for server to shut down properly
end script

exec tmux new-session -d -s minecraft -n bukkit "sudo -u minecraft -- /home/minecraft/java/jre1.6.0_27/bin/java -Xincgc -Xmx1G -jar /home/minecraft/bukkit/craftbukkit-0.0.1-SNAPSHOT.jar"

আমি যখন ইস্যু করি তখন stop bukkitএটি 10 ​​সেকেন্ডের জন্য নিথর হয়ে যায় (স্লিপ টাইমার, আমার ধারণা) এবং মুদ্রণগুলি bukkit start/running, process 2391। আমি যখন ডিবাগ-এ স্টার্ট স্থাপন করি, তখন লগে আমি এই প্রাসঙ্গিক লাইনগুলি পেয়েছি:

Sep 21 19:14:59 cheftest init: bukkit goal changed from start to stop
Sep 21 19:14:59 cheftest init: bukkit main process (2499) exited normally
Sep 21 19:14:59 cheftest init: bukkit main process ended, respawning
Sep 21 19:14:59 cheftest init: bukkit goal changed from stop to respawn

যখন এটি বন্ধ হওয়ার কথা তখনও আপস্টার্ট আমার প্রক্রিয়াটির প্রতি শ্রদ্ধা জানায়?

উত্তর:


23

এখানে অসুবিধা হ'ল 'রিসন'-এর একটি প্রাক-স্টপ স্ক্রিপ্টের সংমিশ্রণ যা প্রক্রিয়াটি থামতে বলে। থিম থেকে (5):

   respawn
         A service or task with this stanza will be automatically started
         if it should stop abnormally.  All reasons for a service stopping,
         except the stop(8) command itself, are considered abnormal.  Tasks
         may exit with a zero exit status to prevent being respawned.

শূন্য প্রস্থান স্থিতির সাথে প্রস্থান করা পুনরুত্থানের কারণ হবে কিনা এই দস্তাবেজটিতে ডকুমেন্টেশনটি কিছুটা অস্পষ্ট। তবে, মৌলিকভাবে আপনি একটি আপস্টার্ট বাগ খুঁজে পেয়েছেন কারণ লক্ষ্যটি 'স্টপ' করার সময় শেষ হওয়া মূল প্রক্রিয়াটির ফলে 'রেসডান' পরিবর্তন করা উচিত নয়।

এই ত্রুটিটি ঘিরে কাজ করার জন্য, আপস্টার্টটি বলতে আপনার "স্বাভাবিক প্রস্থান" ব্যবহার করতে সক্ষম হওয়া উচিত যে এটি কাজ বন্ধ করার একটি সাধারণ উপায় এবং এটি পুনরায় ভোর হওয়া উচিত নয়।

  normal exit STATUS|SIGNAL...
         Additional exit statuses or even signals may be added, if the
         job process terminates with any of these it will not be considered
         to have failed and will not be respawned.

         normal exit 0 1 TERM HUP

মনে রাখবেন যে সাধারণভাবে, কমান্ড জারি করা প্রাক-স্টপ প্রক্রিয়া পরিবর্তে একটি সংকেত (প্রয়োজনে "কিল সিগন্যাল এন" নির্দিষ্ট করে) দিয়ে প্রক্রিয়াটিকে হত্যা করা আরও দৃ rob় হবে; তবে অবশ্যই পরিষেবাটি যদি কোনও সংকেত প্রাপ্তির পরে ক্লিন শটডাউন সমর্থন না করে তবে এটি সর্বদা সম্ভব নয়।


আপনাকে ধন্যবাদ, এই কাজটি আমার ক্ষেত্রে পুরোপুরি কার্যকর হয়। আমি এর জন্য একটি বাগ রিপোর্ট পেয়েছি , তবে মনে হচ্ছে এই আচরণটি সচেতনভাবেই তৈরি করা হয়েছে।
Passy

স্কট জেমস রেমিন্টের উত্তরটির সঠিক উত্তর রয়েছে - এটি একটি বাগ, কোনও ডিজাইনের সিদ্ধান্ত নয়, পরীক্ষার
কেসটিকে

3

অন্য কেউ যদি এখানে শেষ না হয় তবে আমি বাগটিতে একটি কার্য প্যাচ জমা দিয়েছি:

https://bugs.launchpad.net/upstart/+bug/568288/comments/6


উবুন্টুকে জিজ্ঞাসা করুন স্বাগতম! যতক্ষণ এই তাত্ত্বিক প্রশ্নের উত্তর হতে পারে, এটা বাঞ্ছনীয় হবে উত্তর অপরিহার্য অংশের এখানে অন্তর্ভুক্ত করা, এবং রেফারেন্স এর জন্য লিঙ্ক প্রদান।
পিচ্চি

2

এর জন্য ১.১০ আপস্টার্টে একটি ফিক্স প্রকাশ করা হয়েছিল, সুতরাং এখন এটি হওয়া উচিত নয়।


এটি প্রশ্নের উত্তর দেয় না। কোনও লেখকের সমালোচনা বা স্পষ্টতার জন্য অনুরোধ জানাতে, তাদের পোস্টের নীচে একটি মন্তব্য দিন leave
এএমসি

2
আমি এ সম্পর্কে পুরোপুরি নিশ্চিত নই। আমার উত্তরটি বলার সমতুল্য: এটি ঘটেছিল কারণ আপনি আপস্টার্টের একটি পুরানো সংস্করণ ব্যবহার করছেন যাতে একটি বাগ ছিল, এটি সংশোধন করতে সংস্করণ 1.10 বা আরও নতুন ব্যবহার করুন। এমন কিছু যা অন্য উত্তরগুলির মধ্যে কেউই বলে না, এবং প্রকৃতপক্ষে এখন সবচেয়ে কার্যকর উত্তর যেহেতু এই ফিক্সটি প্রকাশ করা হয়েছে এবং কার্যকারিতার জন্য সামান্য কারণ রয়েছে।
cprcrack

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