Я использую CentOS 7. Я хочу получить PID (если он существует) процесса, работающего на порте 3000. Я хотел бы получить этот PID с целью сохранения его в переменной в сценарии оболочки. Пока у меня есть
[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))
но я не могу понять, как изолировать PID сам по себе без всей этой дополнительной информации.
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'
, Вам нужно объяснение?