সংকেত - লিনাক্স / ইউনিক্স কমান্ড

লিনাক্স POSIX নির্ভরযোগ্য সংকেত (পরে "স্ট্যান্ডার্ড সংকেত") এবং POSIX রিয়েল টাইম সংকেত উভয় সমর্থন করে।

স্ট্যান্ডার্ড সংকেত

লিনাক্স নীচে তালিকাভুক্ত স্ট্যান্ডার্ড সংকেত সমর্থন করে। বেশিরভাগ সংকেত সংখ্যার স্থাপত্য নির্ভরশীল, যেমন "মান" কলামে নির্দেশিত। (যেখানে তিনটি মান দেওয়া আছে, প্রথমটি সাধারণত আলফা এবং স্পার্কের জন্য বৈধ, i386 এর জন্য মধ্যবর্তী এক, পিপিসি এবং শ এর জন্য এবং মিপের জন্য শেষ এক।

একটি - ইঙ্গিত দেয় যে সংশ্লিষ্ট স্থাপত্যের উপর একটি সংকেত অনুপস্থিত।)

সারণির "অ্যাকশন" কলামের এন্ট্রিগুলি সিগন্যালের জন্য ডিফল্ট ক্রিয়াটি নির্দিষ্ট করে, নিম্নরূপ:

শব্দ

ডিফল্ট কর্ম প্রসেসটি বন্ধ করতে হয়।

IGN

ডিফল্ট অ্যাকশন হল সংকেতটি উপেক্ষা করা।

মূল

ডিফল্ট অ্যাকশন প্রসেস এবং ডাম্প কোর শেষ করা।

থামুন

ডিফল্ট অ্যাকশন প্রক্রিয়া বন্ধ করা।

প্রথমে মূল POSIX.1 মান মধ্যে বর্ণিত সংকেত।

সংকেত মান কর্ম মন্তব্য
বা নিয়ন্ত্রণ প্রক্রিয়ার মৃত্যু
SIGINT 2 শব্দ কীবোর্ড থেকে বিরতি
SIGQUIT 3 মূল কীবোর্ড থেকে ত্যাগ
SIGILL 4 মূল অবৈধ নির্দেশ
SIGABRT 6 মূল বিবরন থেকে অব্যাহতি সংকেত (3)
SIGFPE 8 মূল ফ্লোটিং পয়েন্ট ব্যতিক্রম
SIGKILL 9 শব্দ সংকেত মুছুন
SIGSEGV 11 মূল অবৈধ মেমরি রেফারেন্স
SIGPIPE 13 শব্দ ভাঙা পাইপ: কোন পাঠকদের সঙ্গে পাইপ লিখুন
SIGALRM 14 শব্দ এলার্ম থেকে টাইমার সংকেত (2)
SIGTERM 15 শব্দ সমাপ্তি সংকেত
SIGUSR1 30,10,16 শব্দ ব্যবহারকারী সংজ্ঞায়িত সংকেত 1
SIGUSR2 31,12,17 শব্দ ব্যবহারকারী-সংজ্ঞায়িত সংকেত 2
SIGCHLD 20,17,18 IGN শিশু বন্ধ বা সমাপ্ত
SIGCONT 19,18,25 যদি থামানো থাকে তাহলে চালিয়ে যান
SIGSTOP 17,19,23 থামুন প্রক্রিয়া বন্ধ করুন
SIGTSTP 18,20,24 থামুন Tty এ টাইপ করা বন্ধ করুন
SIGTTIN 21,21,26 থামুন ব্যাকগ্রাউন্ড প্রক্রিয়া জন্য tty ইনপুট
SIGTTOU 22,22,27 থামুন ব্যাকগ্রাউন্ড প্রক্রিয়া জন্য tty আউটপুট

SIGKILL এবং SIGSTOP সিগন্যালগুলি ধরা, অবরুদ্ধ বা উপেক্ষা করা যাবে না।

পরবর্তী POSIX.1 মানে সিগন্যাল না কিন্তু SUSv2 এবং SUSv3 / POSIX 1003.1-2001 এ বর্ণিত।

সংকেত মান কর্ম মন্তব্য
SIGPOLL শব্দ দূষিত ইভেন্ট (Sys V)। SIGIO এর সমার্থক
SIGPROF 27,27,29 শব্দ প্রোফাইলিং টাইমার মেয়াদ শেষ হয়ে গেছে
SIGSYS 12, -, 12 মূল রুটিন জন্য খারাপ যুক্তি (SVID)
SIGTRAP 5 মূল ট্রেস / ব্রেকপয়েন্ট ফাঁদ
SIGURG 16,23,21 IGN সকেটের অপরিহার্য অবস্থা (4.2 বিএসডি)
SIGVTALRM 26,26,28 শব্দ ভার্চুয়াল এলার্ম ঘড়ি (4.2 বিএসডি)
SIGXCPU 24,24,30 মূল CPU সময় সীমা অতিক্রম করেছে (4.2 বিএসডি)
SIGXFSZ 25,25,31 মূল ফাইলের আকার সীমা অতিক্রম করেছে (4.2 বিএসডি)

লিনাক্স 2.2 পর্যন্ত ও অন্তর্ভুক্ত, SIGSYS , SIGXCPU , SIGXFSZ এবং (SPARC এবং MIPS ব্যতীত আর্কিটেকচারে) SIGBUS- এর জন্য ডিফল্ট আচরণ প্রক্রিয়াটি বন্ধ করা (কোর ডাম্প ছাড়াই) ছিল। (অন্য কোনও ইউনিক্সে SIGXCPU এবং SIGXFSZ এর জন্য ডিফল্ট অ্যাকশনটি মূল ডাম্প ছাড়া প্রক্রিয়াটি বন্ধ করা)। লিনাক্স ২4 এই সিগন্যালগুলির জন্য POSIX 1003.1 -২001 এর প্রয়োজনীয়তাগুলি নিশ্চিত করে, যা কোর ডাম্পের সাথে প্রক্রিয়াটি বন্ধ করে দেয়।

পরবর্তী বিভিন্ন অন্যান্য সংকেত

সংকেত মান কর্ম মন্তব্য
SIGEMT 7, - 7 শব্দ
SIGSTKFLT -, 16, - শব্দ সমাহারের স্ট্যাক ফল্ট
SIGIO 23,29,22 শব্দ I / O এখন সম্ভব (4.2 বিএসডি)
SIGCLD -, -, 18 IGN SIGCHLD জন্য একটি সমার্থক
SIGPWR 29,30,19 শব্দ পাওয়ার ব্যর্থতা (সিস্টেম ভী)
SIGINFO 29, -, - একটি SIGPWR জন্য সমার্থক
SIGLOST -, -, - শব্দ ফাইল লক হারিয়ে গেছে
SIGWINCH 28,28,20 IGN উইন্ডো পুনরায় আকার সংকেত (4.3 BSD, সূর্য)
SIGUNUSED -, 31, - শব্দ অব্যবহৃত সংকেত (SIGSYS হবে)

(সিগন্যাল ২9 SIGINFO / SIGPWR একটি আলফা কিন্তু SIGLOST একটি sparc উপর।)

SIGEMT POSIX 1003.1 -২001 এ নির্দিষ্ট করা হয় নি, কিন্তু অধিকাংশ অপারেটিং সিস্টেমেই কখনোই এটি দেখা যায় না, যেখানে মূল ডিফল্টটি মূল ডাম্পের সাথে প্রক্রিয়াটি বন্ধ করে দেয়।

SIGPWR (যা POSIX 1003.1 -২001 এ নির্দিষ্ট করা হয় না) সাধারণত অন্যান্য ইউনিকসগুলিতে ডিফল্টভাবে উপেক্ষা করা হয় যেখানে এটি প্রদর্শিত হয়।

SIGIO (যা POSIX 1003.1-2001 তে নির্দিষ্ট করা হয় নি) বেশ কয়েকটি Unices এ ডিফল্টভাবে উপেক্ষা করা হয়।

রিয়েল টাইম সংকেত

লিনাক্স বাস্তব সময়ের সংকেতগুলিকে মূলত POSIX.4 প্রকৃত-সময়ের এক্সটেনশনগুলিতে সংজ্ঞায়িত করে (এবং এখন POSIX 1003.1 -২001 এ অন্তর্ভুক্ত করা হয়েছে)। লিনাক্স 32 টি (32 টি সিগ্রেটমিন ) থেকে 63 টি ( সিগ্রেটম্যাএক্স ) SIGRTMAX- এর 32 টি বাস্তব-সময় সংকেত সমর্থন করে। (প্রোগ্রামগুলি সর্বদা সিগ্রেটমিন + এন নোটেশন ব্যবহার করে রিয়েল টাইম সিগন্যালগুলি বোঝায় , যেহেতু ইউনিসেসগুলিতে প্রকৃত-টাইম সংকেত সংখ্যার পরিসীমা পরিবর্তিত হয়।)

মানক সংকেতগুলির বিপরীতে, বাস্তব-সময় সংকেতগুলিতে কোন পূর্বনির্ধারিত অর্থ নেই: বাস্তব-সময় সংকেতগুলির সম্পূর্ণ সেটটি প্রয়োগ-সংজ্ঞায়িত উদ্দেশ্যের জন্য ব্যবহার করা যেতে পারে। (উল্লেখ্য, LinuxThreads বাস্তবায়ন প্রথম তিনটি রিয়েল-টাইম সংকেত ব্যবহার করে।)

একটি অবিচ্ছিন্ন রিয়েল-টাইম সংকেতের জন্য ডিফল্ট অ্যাকশন হল প্রাপক প্রক্রিয়াটি বন্ধ করা।

রিয়েল-টাইম সংকেতগুলিকে নিম্নোক্ত দ্বারা আলাদা করা হয়:

  1. বাস্তব সময় সংকেত একাধিক দৃষ্টান্ত সারিবদ্ধ করা যাবে। বিপরীতক্রমে, যদি একটি সংকেত সংখ্যার একাধিক দৃষ্টান্ত বিতরণ করা হয় তবে সেই সংকেত বর্তমানে অবরুদ্ধ থাকে, তবে শুধুমাত্র একটি উদাহরণ সারিবদ্ধ।
  2. যদি সংকেতটি sigqueue (2) ব্যবহার করে পাঠানো হয়, তবে একটি সহগামী মান (একটি পূর্ণসংখ্যা বা একটি পয়েন্টার) সংকেত দিয়ে পাঠানো যেতে পারে। যদি গ্রহণ প্রক্রিয়াটি সিগন্যাল অ্যাকসেসের জন্য সিগন্যাল অ্যাক্টিভেশন (2) দ্বারা এই সিগন্যালের জন্য একটি হ্যান্ডলার স্থাপন করে তবে এটি হ্যান্ডললারের দ্বিতীয় আর্গুমেন্ট হিসাবে siginfo_t কাঠামোটির SI_value ক্ষেত্রের মাধ্যমে এই তথ্যটি পেতে পারে। উপরন্তু, এই গঠনটির SI_pid এবং si_uid ক্ষেত্রগুলিকে PID এবং আসল ইউজার আইডি সংকেত প্রেরণ করতে ব্যবহার করা যেতে পারে।
  3. রিয়েল-টাইম সিগন্যালগুলি একটি নিশ্চিত অর্ডারে বিতরণ করা হয়। একই ধরনের একাধিক রিয়েল-টাইম সিগন্যালগুলি বিতরণ করা হয় যাতে তারা পাঠানো হয়। যদি বিভিন্ন বাস্তব-সময়ের সংকেতগুলিকে একটি প্রক্রিয়ায় পাঠানো হয়, তবে সর্বনিম্ন সংখ্যক সংকেত দিয়ে শুরু করা হয়। (ইএ, কম সংখ্যক সংকেত সর্বোচ্চ অগ্রাধিকার আছে।)

যদি উভয় প্রমিত এবং বাস্তব সময় সংকেত একটি প্রক্রিয়া জন্য মুলতুবি আছে, POSIX এটি অনির্দিষ্ট যা প্রথম বিতরণ করা হয়। লিনাক্স, অন্যান্য অনেকগুলি প্রয়োগের মতো, এই ক্ষেত্রে স্ট্যান্ডার্ড সংকেতগুলিকে অগ্রাধিকার দেয়।

POSIX অনুযায়ী, একটি বাস্তবায়নের প্রক্রিয়াটি কমপক্ষে _POSIX_SIGQUEUE_MAX (32) রিয়েল-টাইম সংকেতগুলিকে একটি প্রক্রিয়ায় সারিবদ্ধ করা উচিত। যাইহোক, প্রতি-প্রক্রিয়া সীমা স্থাপন করার পরিবর্তে, লিন্যাক্স সমস্ত প্রসেসের জন্য সারি-সংকেতগুলির সংখ্যার একটি সিস্টেম-সমেত সীমিত করে।

এই সীমাটি / proc / sys / kernel / rtsig-max ফাইলের মাধ্যমে পরিবর্তন করা (এবং বিশেষাধিকার সহ) করা যেতে পারে একটি সম্পর্কিত ফাইল, / proc / sys / kernel / rtsig-max , এটি ব্যবহার করা যেতে পারে তা খুঁজে বের করতে কতগুলি রিয়েল-টাইম সংকেতগুলি বর্তমানে সারিবদ্ধ।

কনফারিং

POSIX.1

গুরুত্বপূর্ণ: আপনার কমান্ডটি নির্দিষ্ট কম্পিউটারে কিভাবে ব্যবহার করা হয় তা দেখতে ম্যান কমান্ড ( % man ) ব্যবহার করুন।