"lsof"——list open files,lsof也是Linux下用于查看打開的文件以及相關(guān)聯(lián)進(jìn)程信息的工具

關(guān)于這個(gè)報(bào)錯(cuò),原因是因?yàn)閚odemon已經(jīng)啟動(dòng)了,占用了一個(gè)為3000的端口。接下來我們只要快速找到這個(gè)占用3000端口的進(jìn)程,并終止它就行了。
使用命令
lsof -i:3000

這時(shí)我們看到了進(jìn)程PID,我們終止它就行了
kill 20763
再次啟動(dòng)服務(wù),正常運(yùn)行
每行顯示一個(gè)打開的文件,各列含義如下:
COMMAND:與文件關(guān)聯(lián)進(jìn)程的名稱
PID:進(jìn)程PID
USER:拉起進(jìn)程的用戶
FD:指示進(jìn)程與文件的關(guān)聯(lián)關(guān)系
TYPE:指示文件類型
DEVICE:指示文件所在設(shè)備的設(shè)備號(hào)(major,minor)
SIZE/OFF:指示文件的大小或進(jìn)程對(duì)文件操作的偏移量
NODE:文件索引標(biāo)識(shí)
NAME:文件名
FD列值的含義與fuser查詢結(jié)果中PID后接字符的含義相同,指示了進(jìn)程與文件的關(guān)聯(lián)關(guān)系,有以下常見取值:
cwd:進(jìn)程工作目錄
txt:進(jìn)程由該文件拉起(如二進(jìn)制文件或腳本)
rtd:進(jìn)程的根目錄
mem:內(nèi)存映射文件
N(u/w/r):指示該文件為進(jìn)程打開的第N個(gè)文件描述符,u為可讀可寫模式,w為可寫模式,r為可讀模式
TYPE列有以下常見取值:
REG:一般文件
DIR:目錄
CHR:字符設(shè)備
BLK:塊設(shè)備
FIFO:命名管道
PIPE:管道
IPV4:ipv4套接字
unix:unix域套接字
根據(jù)以上字段,我們就可以了解到哪個(gè)文件以何種關(guān)聯(lián)方式與哪個(gè)進(jìn)程關(guān)聯(lián)。但單執(zhí)行l(wèi)sof輸出太多,為獲取必要輸出,我們就得加一些過濾選項(xiàng)。