今晚早些时候我正在使用minicom玩路由器,我一定没有干净地关闭它。这是我尝试打开小通时收到的错误消息:
device /dev/ttyusb0 lock failed: operation not permitted
我有两个问题,1)我将如何摆脱这种状态,以及2)我如何干净地退出minicom,以便我可以避免这种情况再次发生。
我发现我能够通过运行minicom -S <device> -o
和正常的退出键序列(CTRL-a,x)来解决我的CentOS盒子上的情况。
在你的情况下,它会是
sudo minicom -S ttyusb0 -o
这清除了 minicom 放置在/var/lock/中的锁定文件
祝你好运灰
我在从远程终端使用gtkterm
时遇到了类似的问题。 我在没有明确终止gtkterm
的情况下关闭了终端。 结果是随后的 gtkterm 会话给了我错误:
Device /dev/ttyUSB0 is locked.
通过ps
检查进程列表未显示任何仍在运行gtkterm
进程。
我通过简单地删除/run/lock/LCK..ttyUSB0
来纠正这一点。 这样做之后,gtkterm能够成功打开ttyUSB0。
- [root@edge-TC 锁]# 小通'
- 设备/dev/ttyUSB0 锁定失败:不允许操作。
- 解决方案:'
- 检查已锁定并终止进程的进程'
- [root@edge-tc lock]# fuser/dev/ttyUSB0'
-
/dev/ttyUSB0: 18328
- [root@edge-TC 锁]# 杀死 -9 18328
- [root@edge-TC 锁]#'
- [root@edge-TC 锁]#'
- [root@edge-TC 锁]# 小通'
- 欢迎来到小通 2.1'
规范的方法是使用lockdev。这在 /run/lock/lockdev/
中以每个设备为基础管理锁定文件(至少在 CentOS 7.x 下)。
lockdev <device>
可以在没有root的情况下使用,如果设备已被锁定,则返回非零,在这种情况下,可以使用lockdev -u <device>
解锁。
这显然已经过时了,但minicom
(至少从 2.6.2 版开始)仍在使用它。