Tôi đang sử dụng CentOS 7. Tôi muốn nhận được PID (nếu có tồn tại) của quy trình đang chạy trên cổng 3000. Tôi muốn có được PID này cho mục đích lưu nó vào một biến trong tập lệnh shell. Cho đến nay tôi có
[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))
nhưng tôi không thể tự mình tìm ra cách cô lập PID mà không có tất cả thông tin bổ sung này.
ss
mà không có tùy chọn này. Nên hoạt động ngay cả khi không có nó: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'
. Bạn có cần giải thích?