खुले हुए ports और processes को एक नज़र में दिखाने वाला CLI टूल
(github.com/givvemee)डेवलपमेंट करते समय lsof -i :3000 जैसी कमांड न जाने कितनी बार चलानी पड़ती है।
"यह port कौन use कर रहा है?", "लगता है वह server अभी बंद नहीं किया..."
ports-cli एक CLI टूल है जो इस समय खुले हुए सभी ports को process नाम और project path के साथ साफ़-सुथरे तरीके से दिखाता है।
मुख्य फीचर्स
- एक नज़र में देखें: खुले हुए ports, process नाम और project path को table के रूप में दिखाता है
- Node.js project पहचान:
package.jsonकाnameपढ़करnodeकी जगह असली project नाम दिखाता है - यूज़र process filtering:
-uoption से system processes को छोड़कर सिर्फ़ अपने चलाए हुए processes देखें - बंद करना:
ports bye 3000से उस port का process तुरंत kill करें
इंस्टॉलेशन
brew tap givvemee/tap
brew install ports-cli
उपयोग
ports # सभी listening ports दिखाएँ
ports -u # सिर्फ़ मेरे चलाए हुए processes
ports bye 3000 # port 3000 का process बंद करें
आउटपुट उदाहरण
PORT PROCESS PATH
---- ------- ----
3000 my-app ~/Documents/GitHub/my-app
5432 postgres -
8080 test-server ~/Documents/GitHub/test-server
यह केवल macOS के लिए है, और Bash script होने के कारण बिना किसी अतिरिक्त dependency के हल्के तरीके से चलता है।
फ़ीडबैक का स्वागत है। :)
6 टिप्पणियां
ओह, इसमें काफ़ी उपयोगी फीचर्स हैं। 👍🏻
macOS के मामले में, बिना अलग से install किए नीचे दिए गए command से आसानी से जाँच करना भी संभव है।
इसे
~/.zshrcमें जोड़ सकते हैं।(संदर्भ के लिए साझा कर रहा/रही हूँ!)
alias portcheck="printf "\033[4;37m%-15s %-8s %-20s %s\033[0m\n" "COMMAND" "PID" "PORT" "DIR"; sudo lsof -iTCP -sTCP:LISTEN -n -P | awk 'NR>1 {print $2, $1, $9}' | sort -u | while read pid cmd port; do dir=$(sudo lsof -p "$pid" -a -d cwd -F n 2>/dev/null | tail -1 | cut -c2-); printf "\033[1;32m%-15s\033[0m \033[1;36m%-8s\033[0m \033[1;33m%-20s\033[0m %s\n" "$cmd" "$pid" "$port" "$dir"; done"
अच्छा, तो आपने
portcheckalias बनाकर इस तरह इस्तेमाल किया था। यह तरीका भी काम का लग रहा है। धन्यवाद!डबल कोट की समस्या थी, इसलिए इसे फिर से साझा कर रहा हूँ।
alias portcheck='printf "\033[4;37m%-36s %-8s %-22s %s\033[0m\n" "COMMAND" "PID" "LISTEN" "CWD"; sudo lsof -nP -iTCP -sTCP:LISTEN -F pcn 2>/dev/null | awk '"'"'BEGIN{pid=cmd=name=""}/^p/{pid=substr($0,2)}/^c/{cmd=substr($0,2)}/^n/{name=substr($0,2);if(pid&&cmd&&name)print pid"\t"cmd"\t"name}'"'"' | sort -u | while IFS=$'"'"'\t'"'"' read -r pid cmd name; do dir=$(sudo lsof -n -p "$pid" -a -d cwd -F n 2>/dev/null | sed -n '"'"'s/^n//p'"'"' | tail -1); [ -z "$dir" ] && dir="-"; printf "\033[1;32m%-36.36s\033[0m \033[1;36m%-8s\033[0m \033[1;33m%-22s\033[0m %s\n" "$cmd" "$pid" "$name" "$dir"; done'
मुझे जानना है कि
sudo Netstat -tnlpकी तुलना में इसके फायदे क्या हैंइस्तेमाल करके देखेंगे तो समझ आएगा कि यह चीज़ों को थोड़ा ज़्यादा व्यवस्थित तरीके से दिखाता है.
यूज़र के लिए सिर्फ़ वे processes देखने का filter feature भी है जो वह सीधे इस्तेमाल कर रहा है.
ओह, मैंने इसे तुरंत इंस्टॉल करके इस्तेमाल किया, और यह इतना सरल है कि इस्तेमाल करने में बहुत अच्छा लगा!!
धन्यवाद, हाहा