Linux 专区 · 2024年8月28日

lslk命令 – 列出本地锁

lslk命令的作用是可以列出本地inode上的文件锁的信息。

锁可以属于本地系统上的进程,也可以属于本地系统是NFS服务器的NFS客户端系统上的进程。

注意选定文件如果没有任何选项,lslk命令将列出与系统本地文件关联的所有锁。 指定选择选项后,将禁用所有锁的列表,并且将选择选项进行或运算。仅列出满足任何选择条件的锁。 指定-a选项时,将禁用所有锁的列表,并且将选择选项与在一起。仅列出符合所有选择条件的锁。

语法格式:lslk [参数] [路径]

常用参数:

-a 列出选择选项进行AND运算
-b 避免内核函数可能会阻塞
-n 禁止在网络主机名和网络地址之间互相转化
-i<主机名> 按拥有进程是Internet主机还是网络地址选择锁的列表
-v 列出版本信息
-k<内核名称> 以指定内核名称作为默认的内核名称列出文件路径
-p<进程PID> 按所属的进程标识(PID)号选择锁的列表
-S<超时时间> 为内核函数lstat、readlink和stat指定一个可选的超时时间,单位为秒,否则可能出现死锁。超时时间最小设置为2,在默认情况下是15,当没有指定值时,则使用默认值
-w 禁止非致命警告消息

输出字段:

SRC 进程持有锁的来源
PID 进程持有锁的进程标识号
DEV 锁的文件所在的设备(主要和次要号码)
INUM 锁文件的inode号
SZ 锁文件的大小
TY 锁类型
r:读取
rw:读取和写入
w:写入
?:未知
M 锁的强制状态:0表示没有,1表示设置
ST 锁的相对字节偏移量
WH 锁的起始偏移量
END 锁的结束偏移量
LEN 锁的长度
NAME 锁文件的名称

参考实例

列出所有的锁:

[root@linuxcool ~]# lslk

从主机linuxcool.com上列出锁:

[root@localhost ~]# lslk -i linuxcool.com

列出进程1234和8888持有的锁:

[root@linuxcool ~]# lslk -p 1234,8888