cmdsubst>
zsh
शेल द्वारा मुद्रित माध्यमिक संकेत है जब यह दर्ज किया जा रहा है कमांड प्रतिस्थापन के अंत की प्रतीक्षा कर रहा है।
यदि आपको केवल दर्ज करने के बाद वह संकेत मिलता है killl<Return>
, तो एकमात्र उचित स्पष्टीकरण यह है कि आपके पास एक उपनाम (जो स्ट्रिंग मैक्रो विस्तार का कुछ रूप है) killl
उस चीज के लिए फैलता है जिसमें एक अनिर्दिष्ट $(...)
कमांड प्रतिस्थापन होता है, जैसे:
$ alias 'killl=echo $(lsof -ti'
$ killl :22
cmdsubst>
जहाँ zsh
आप उस $(...)
कमांड प्रतिस्थापन को बंद करने के लिए कह रहे हैं ।
कुछ और नोट:
- का उत्पादन
lsof
पिड द्वारा सॉर्ट किया जाता है। pid नंबर लिपटे हुए हैं, एक बड़ा pid इस बात की गारंटी नहीं है कि प्रक्रिया बाद में शुरू की गई थी।
-i:8080
टीसीपी या यूडीपी सॉकेट की रिपोर्ट करेगा, जिसमें स्रोत या गंतव्य पोर्ट के रूप में 8080 पोर्ट है, चाहे वह सुनने, स्वीकार करने या सॉकेट को जोड़ने के लिए हो।
- यदि आप केवल पीआईडी प्राप्त करना चाहते हैं, तो आप निम्न
-t
विकल्प का उपयोग कर सकते हैं lsof
:lsof -ti:8080 | tail -n2
kill -9
है kill -s KILL
जो एक संकेत है कि आवेदन शान से बाहर निकलने के लिए पर कार्रवाई नहीं कर सकते हैं भेजता है,। इसका उपयोग केवल अंतिम उपाय के रूप में किया जाना चाहिए।
सबसे हाल ही में शुरू की गई प्रक्रिया को मारने के लिए पोर्ट 8080 पर एक सॉकेट बाउंड (या तो अंत) है, आप यह कर सकते हैं:
#! /bin/sh -
unset IFS
pids=$(lsof -ti:8080) &&
LC_ALL=C ps -o pid=,lstart= -p $pids |
LC_ALL=C sort -k6,6n -k4,4M -k3,3n -k5,5 -k1,1n |
awk 'END{system("kill " $1)}'
(मानता है कि GNU sort
(जैसा ps
कि lstart
macOS पर पाया जाता है) और एक कार्यान्वयन जो स्तंभ का समर्थन करता है (जैसे macOS ’और procps-ng, हालांकि कोड को एनपीएस के लिए अपडेट किया जाना होगा-जहां महीने और दिन खेतों की अदला-बदली होती है)।
killl
?