मैं CentOS 7 का उपयोग कर रहा हूं। मैं पोर्ट 3000 पर चलने वाली प्रक्रिया का पीआईडी (यदि कोई मौजूद है) प्राप्त करना चाहता हूं। मैं इसे शेल स्क्रिप्ट में एक चर में सहेजने के प्रयोजनों के लिए इस पीआईडी को प्राप्त करना चाहता हूं। अब तक मेरे पास है
[rails@server proddir]$ sudo ss -lptn 'sport = :3000'
State Recv-Q Send-Q Local Address:Port Peer Address:Port
Cannot open netlink socket: Protocol not supported
LISTEN 0 0 *:3000 *:* users:(("ruby",pid=4861,fd=7),("ruby",pid=4857,fd=7),("ruby",pid=4855,fd=7),("ruby",pid=4851,fd=7),("ruby",pid=4843,fd=7))
लेकिन मैं यह पता नहीं लगा सकता कि यह सब अतिरिक्त जानकारी के बिना पीआईडी को कैसे अलग करना है।
ss
इस विकल्प के बिना एक पुराना है। इसके बिना भी काम करना चाहिए:sudo ss -lptn "sport = :22" | awk -F " " '{printf $6}' | sed 's/.\+pid=\([0-9]\+\).\+/\1/g'
sudo ss -lptnH "sport = :22" | awk -F " " '{printf $6}' | sed 's/.\+pid=\([0-9]\+\).\+/\1/g'
। क्या आपको स्पष्टीकरण की आवश्यकता है?