কেন SIGUSR1 এর প্রক্রিয়াটি বন্ধ করার কারণ?


20

অন্যান্য প্রশ্নের এই মন্তব্যটি নিয়ে আমি অবাক হয়েছি :

ইউএসআর 1 সিগন্যালটি প্রেরণের খুব শীঘ্রই প্রেরণ করা (অর্থাত্ কোনও ব্যাশ স্ক্রিপ্টে, আপনি এটি শুরু করার পরে লাইনটি) আসলে এটি শেষ করে দেবে

কেন কেউ ব্যাখ্যা করতে পারেন ?


আপনার প্রশ্নের এত উত্তর না, তবে এই ওয়ান-লাইনারটি ব্যবহার করে দেখুন: { dd if=/dev/zero of=/dev/null & }; kill -USR1 $!; jobs; sleep 1; jobsআপনি যে প্রভাবটি বর্ণনা করছেন তা পুনরুত্পাদন করতে।
জিপ্পি

উত্তর:


38

প্রতিটি সিগন্যালের একটি "ডিফল্ট স্বভাব" থাকে - কোনও সংকেত যখন সিগন্যালটি পায় তখন এটি কোনও ডিফল্টরূপে কী করে। signal(7)ম্যান পৃষ্ঠায় তাদের তালিকাভুক্ত একটি টেবিল রয়েছে :

Signal     Value     Action   Comment
──────────────────────────────────────────────────────────────────────
...
SIGUSR1   30,10,16    Term    User-defined signal 1
SIGUSR2   31,12,17    Term    User-defined signal 2

SIGUSR1এবং SIGUSR2উভয়ের ডিফল্ট ক্রিয়া রয়েছে Term- প্রক্রিয়াটি সমাপ্ত হয়। ddসিগন্যালটি আটকানো এবং এর সাথে দরকারী কিছু করার জন্য কোনও হ্যান্ডলারকে নিবন্ধভুক্ত করে, তবে আপনি যদি খুব দ্রুত সিগন্যাল করেন তবে এখনও সেই হ্যান্ডলারের নিবন্ধকরণের সময় হয়নি, সুতরাং পরিবর্তে ডিফল্ট ক্রিয়াটি ঘটে


1
আমি আশা করি এই অস্পষ্টতা সম্পর্কে সচেতন হওয়ার জন্য আমি দু'বার উপচে পড়তে পারি। একটি স্পষ্ট সংকেত হ্যান্ডলার অপসারণের পরে প্রক্রিয়াগুলি এলোমেলোভাবে মারা যাওয়া অস্বীকার করে।
ডিকনডেস্পেরাদো

1
যুক্তিসঙ্গত সময়ের জন্য কেবলমাত্র (~ 0.5-1 সেকেন্ড) ঘুমানোর পরিবর্তে এই ঘোড়দৌড়ের অবস্থা নিয়ন্ত্রণ করার কোনও ব্যবহারিক উপায় আছে কি? (আমি বলতে চাই, straceশেল স্ক্রিপ্টে আউটপুট ক্যাপচার এবং পার্স করার মতো হাস্যকর কিছু ছাড়াও ...)
অ্যাড্রিয়ান গ্যান্টার

আমার একটা শেল স্ক্রিপ্ট ছিল ঠিকঠাক। তবে হঠাৎ সম্ভাবনার কারণে কাজ করা বন্ধ করুন!: আমার এখন হাইপারথ্রেডিং ছিল। সাব-প্রসেস কিল-সিগন্যাস প্রেরণ US PARENT_PID এখন খুব দ্রুত হয় ?. বৃদ্ধ পিতামাতা মনে করেন পিতামাতাকে সাধারণত শেষ করা হয় তবে পিতা-মাতা এখনও লুপটি সম্পাদন করছেন। এটি একটি ভাল পোস্টিং। আমি দিনের বেশিরভাগ সময় এটি বের করার চেষ্টা করে কাটিয়েছি।
কেমিন ঝো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.