স্ক্রিন / নোহাপ সত্ত্বেও এসএসএস সংযোগ বিচ্ছিন্ন হয়ে প্রক্রিয়াটি নিহত হয়েছে


1

আমি বরং একটি অদ্ভুত পরিস্থিতির মুখোমুখি হয়েছি:

  • ssh to a beaglebone (বিশদ: uname -a = "লিনাক্স beaglebone 3.2.34 # 1 বুধ নভেম্বর 21 14:17:11 সিইটি 2012 আর্মভ 7l জিএনইউ / লিনাক্স", এসএসএস সার্ভার: ড্রপবিয়ার এসএসডিডি v2012.55)
  • স্ক্রিন, বা নোহপ বা /etc/init.d/ এর মাধ্যমে কোনও প্রকার প্রক্রিয়া চালু করুন
  • প্রস্থান
  • এটি পুনরায় ssh
  • প্রক্রিয়া আর নেই যে পর্যবেক্ষণ করুন ..

দ্বিতীয় ssh সংযোগটি ব্যবহার করার সময়, আমি পর্যবেক্ষণ করতে পারি যে প্রবর্তন প্রক্রিয়াটি সংযোগ বিচ্ছিন্নভাবে মারা গেছে।

আমি শেলটি বেরোনোর ​​পরে, বা হত্যা করার পরে কোনও পটভূমি কাজ নিহত হওয়ার পরে ঠিক কী নির্ধারণ করে তার মতো পোস্টগুলি দেখেছি ? , তবে এখনও এই আচরণটি বুঝতে পারি না, যা পরিষ্কারভাবে উপায় নয় screenএবং অন্যান্য অস্বীকৃত প্রক্রিয়াগুলি কাজ করার কথা।

$ shopt huponexit
huponexit       off

প্রক্রিয়াটি অবিরত রাখতে আমাকে ক্রোন কমান্ডগুলি ব্যবহার করতে হবে

বিচ্ছিন্নভাবে বিচ্ছিন্ন প্রক্রিয়াগুলিকে কেন হত্যা করা হয়?

আপনি কি অন্যান্য জিনিস সন্ধান করতে চান?


আপনি অস্বীকার করার চেষ্টা করেছেন?
মারিয়াসমাতুটিয়

হ্যাঁ: চেষ্টা করা হয়েছে cmd; ctrl+z; bg; disown, jobsএকটি খালি তালিকা দেয়, তবে এটি এখনও একই আচরণ
দেখায়

আপনি কি রিমোট সার্ভারটি নিয়ন্ত্রণ করেন?
মারিয়াসমাতুটিয়

হ্যাঁ, এটি আমার অফিসে কোথাও বসে একটি বেগলেবোন
নটস্ক্র্ট

উত্তর:


0

দেখে মনে হচ্ছে অদ্ভুত নোহুপ কাজ করে না, তবে এটিকে সহজেই পরীক্ষায় ফেলতে পারে, নীচে:

  { sleep 999; echo $? > exitcode ; } &
  fuser -1 -k /bin/sleep
  expr $(cat exitcode) - 128

এটি রিটার্ন কোড বিয়োগ 128 মুদ্রণ করবে, এটি হ'ল সংকেতটির সঠিক সংখ্যা। আপনি কেবল এগুলি দ্বারা তাদের তালিকা করতে পারেন:

  kill -l 

পরিবর্তে এটি চেষ্টা করুন:

  rm exitcode
  { nohup sleep 999; echo $? > exitcode; } &
  fuser -1 -k /bin/sleep
  ls -l exitcode

যদি নোহুপ কাজ করে তবে এই মুহুর্তে আপনাকে জানানো হবে যে এ জাতীয় কোনও ফাইল নেই। আপনি এটি করে ডাবল-চেক করতে পারেন:

  fuser -15 -k /bin/sleep
  expr $(cat exitcode) -128

এবং এই মানটি 15 হবে।

সম্পাদনা

আপনার শেষ মন্তব্যটি বেশ প্রকাশ পেয়েছিল: এর অর্থ হ'ল SIGHUP প্রক্রিয়ায় প্রেরণ করা হয়নি (ঘুম, এই ক্ষেত্রে) তবে সরাসরি আপনার শেলের কাছে। এটি অবশ্যই ড্রপবারের দ্বারা অনায়াসে করা যায়। একটি সামান্য গবেষণা প্রমাণ করেছে যে ড্রপবার প্রকৃতপক্ষে লগঅফের সমস্ত ব্যবহারকারীর প্রক্রিয়াগুলিকে হত্যা করে।

আপনি লাইন যুক্ত করে এই বিরক্তিকর বৈশিষ্ট্যটি চালু করতে পারেন

 KillMode=process

/lib/systemd/DPbear@.service ফাইলে পরিষেবা স্তরের শেষে। তারপরে হয় পুনরায় বুট করুন বা ড্রপবিয়ার পুনরায় চালু করুন।


Nohup ছাড়া প্রথম ঘুমের জন্য, প্রত্যাশার হিসাবে exitcode - 128দেয় HUP। নোহুপের সাথে দ্বিতীয় ঘুমের জন্য, ফাইলটি প্রকৃতপক্ষে অনুপস্থিত এবং কিলের পরে প্রত্যাশা অনুযায়ী exitcode - 128দেয় 15
নোটস্পার্ট

তবে যদি আমি নোহুপের সাথে আরম্ভ করা দ্বিতীয় লগটিকে এবং লগআউট এবং পুনরায় লগইন না করি তবে ঘুম নিহত হয়েছে .. এবং কোনও এক্সকোড ফাইল নেই ..
নটস্ক্র্ট

@ নটস্কয়ার্ট দয়া করে আমার উত্তরের সম্পাদনা দেখুন।
মারিয়াসমাতুটিয়

এখনই পরীক্ষিত, আমার সম্পাদনা করা ফাইলটি ছিল /lib/systemd/system/dropbear@.service। এটি কাজ করে! সাবাশ !
নোটস্পার্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.