`হত্যা -p` সত্যিই কাজ করে?


11

এর ম্যান পেজে killনীচে লেখা আছে

সংক্ষিপ্তসার

  kill [ -s signal | -p ] [ -a ] [ -- ] pid ...
  kill -l [ signal ]

  -p     Specify  that kill should only print the process id (pid) of the
          named processes, and not send any signals.

তবে যেমন আমি আরএইচ এবং আরএইচএল উভয় ক্ষেত্রে অনেকবার চেষ্টা করেছি, কমান্ডটি kill -s SIGHUP |-p 123কখনও কাজ করে না এবং একটি ত্রুটি সর্বদা জানানো হয়

bash: -p: কমান্ড পাওয়া যায় নি

আমি কি কোন ভুল করেছি?


11
মনে রাখবেন আপনি কমান্ডটি টাইপ করার সময় আপনি [ ]বন্ধনীগুলি সরিয়ে নিয়েছেন এবং এর signalসাথে SIGHUPএবং এর pidসাথে প্রতিস্থাপন করেছেন 123? তুমি এটা কেন করছিলে? কারণ আপনি জানেন যে প্রতীকগুলি [, signalএবং pidআক্ষরিকের চেয়ে মেটা-সিনট্যাকটিক। সিনট্যাক্স কী তা তারা নির্দেশ করে। ঠিক আছে, |প্রতীকটি একই জিনিস: সিনট্যাক্সের আরও একটি মেটা-সিনট্যাকটিক সূচক। [a | b]অর্থ: alচ্ছিক সিনট্যাকটিক আইটেম, যা হয় হয় aবা b(তবে উভয়ই নয় কারণ এটি অবশ্যই একটি আইটেম হতে হবে) be
কাজ

আপনার নির্দেশের জন্য ধন্যবাদ। যাইহোক, আপনি কিভাবে উচ্চারণ করবেন [a | b]?
ব্যবহারকারী43312

হুম। "Aচ্ছিক এ বা বি"।
কাজ

উত্তর:


51
kill [ -s signal | -p ]

একটি ম্যানুয়াল পৃষ্ঠায় এই বাক্য গঠনটির অর্থ:

আপনি ব্যবহার করতে পারেন kill -s signal বা আপনি ব্যবহার করতে পারেন kill -pতবে আপনি উভয় -sএবং -pএকই সাথে ব্যবহার করতে পারবেন না ।

পাইপ ( |) এর অর্থ দাঁড়ায় (একচেটিয়া) বা ডকুমেন্টেশনে এটি কমান্ডের অংশ নয়।

আপনি যখন টাইপ করুন

foo | bar

আপনার শেল, এটা শুরু করার প্রচেষ্টা করা হবে fooএবং barপাইপ, এবং আউটপুট fooকরতে barপ্রোগ্রাম। (এটি শেলটি করছে যা, foo(বা bar) নয়, |উভয় প্রক্রিয়াতেই পাস হয় না)) আপনার ক্ষেত্রে, দ্বিতীয় অংশটি -p 123, তাই শেলটি একটি এক্সিকিউটেবল নামক সন্ধান করার চেষ্টা করে -pএবং ত্রুটি বার্তায় ব্যর্থ হয়।


ধন্যবাদ, @ ম্যাট সুতরাং আমি একটি কমান্ড দিতে kill -p 123। এটা বলে bash: kill: p: invalid signal specification। এবং kill -p SIGINT 123একই জিনিস বলে। আমি মনে করি না সিনট্যাক্স অনুযায়ী সংকেত রাখার জায়গা আছে। আপনি যদি -pবিকল্পটি ব্যবহারের জন্য কেবল একটি প্রদর্শন করেন তবে আপনার আপত্তি আছে ?
ব্যবহারকারী43312

2
@ ব্যবহারকারী43312: এর জন্য স্ল্যামের উত্তর দেখুন
ম্যাট

32

আমি তোমাদের সত্য একটি builtin কমান্ড ব্যাশ ডেকে নেই উপর হোঁচট খেয়েছি করছি মনে kill, কমান্ড সহ kill

$ type -a kill
kill is a shell builtin
kill is /usr/bin/kill
kill is /bin/kill

আপনি যে ম্যান পৃষ্ঠাটি পড়ছেন সেটি killনীচে অবস্থিত কমান্ডের কথা উল্লেখ করছে /bin। এটি ডেকে আনার জন্য পুরো পথটি ব্যবহার করুন:

$ /bin/kill -p sleep
16486

উল্লেখ্য /usr/bin/killমাত্র একটি লিঙ্ক /bin/kill

$ ls -l /usr/bin/kill
lrwxrwxrwx 1 root root 14 Feb  9  2011 /usr/bin/kill -> ../../bin/kill

$ readlink -m /usr/bin/kill
/bin/kill

এটি সত্যিই কাজ করে। এবং আমি সমস্ত ডেমো জন্য প্রশংসা করি।
ব্যবহারকারী43312

@ ব্যবহারকারী43312 - এনপি। উদাহরণগুলি ম্যান পেজ 8- এর চেয়ে অনুসরণ করা সর্বদা সহজ)
slm
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.