Linux
使用特定埠查找程序的 PID?
我正在我的 Ubuntu 系統上安裝 hadoop。當我啟動它時,它報告埠 9000 正忙。
我用了:
netstat -nlp|grep 9000
看看是否存在這樣的埠,我得到了這個:
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
但是我怎樣才能得到持有它的程序的PID呢?
您現有的命令不起作用,因為 Linux 要求您是 root 或程序的所有者才能獲得所需的資訊。
在現代系統上,
ss
是用於獲取此資訊的適當工具:$ sudo ss -lptn 'sport = :80' State Local Address:Port Peer Address:Port LISTEN 127.0.0.1:80 *:* users:(("nginx",pid=125004,fd=12)) LISTEN ::1:80 :::* users:(("nginx",pid=125004,fd=11))
您也可以使用目前正在使用的相同呼叫,但您必須首先使用以下命令進行提升
sudo
:$ sudo netstat -nlp | grep :80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 125004/nginx
您還可以使用 lsof:
$ sudo lsof -n -i :80 | grep LISTEN nginx 125004 nginx 3u IPv4 6645 0t0 TCP 0.0.0.0:80 (LISTEN)