追加情報なしでポート3000で実行されているプロセスのPIDのみをどのように取得できますか?

追加情報なしでポート3000で実行されているプロセスのPIDのみをどのように取得できますか?

CentOS 7を使用しています。ポート3000で実行されているプロセスのPIDがある場合はインポートしたいと思います。この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を単独で分離する方法はわかりません。

ベストアンサー1

別の考えられる解決策:

lsof -t -i :<port> -s <PROTO>:LISTEN

たとえば、

# lsof -i :22 -s TCP:LISTEN
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    1392 root    3u  IPv4  19944      0t0  TCP *:ssh (LISTEN)
sshd    1392 root    4u  IPv6  19946      0t0  TCP *:ssh (LISTEN)
# lsof -t -i :22 -s TCP:LISTEN
1392

おすすめ記事