我今晚早些时候正在玩一个路由器使用minicom而且我一定不能干净利落地关闭它。这是我尝试打开minicom时收到的错误消息:
device /dev/ttyusb0 lock failed: operation not permitted
我有两个问题,1)我将如何摆脱这种状态,以及2)如何彻底退出minicom以便我可以再次避免这种情况发生。
答案 0 :(得分:21)
我发现我能够通过运行minicom -S <device> -o
并执行正常的退出键序列(CTRL-a,x)来修复我的CentOS盒子上的情况。
在你的情况下,它本来是
sudo minicom -S ttyusb0 -o
这清除了minicom放在/ var / lock /
中的锁文件 祝你好运 灰答案 1 :(得分:5)
我在使用远程终端的tag
时遇到了类似的问题。我在没有明确终止require 'openssl'
require 'base64'
def encrypt(data)
cipher = OpenSSL::Cipher::AES128.new(:GCM).encrypt
key = cipher.random_key
iv = cipher.random_iv
cipher.key = key
cipher.iv = iv
cipher.auth_data = ''
enc_data = cipher.update(data) + cipher.final
return enc_data, key, iv, cipher.auth_tag
end
def decrypt(data, key, iv, auth_tag)
cipher = OpenSSL::Cipher::AES128.new(:GCM).decrypt
cipher.decrypt
cipher.key = key
cipher.iv = iv
cipher.auth_data = ''
cipher.auth_tag = auth_tag
cipher.update(data) + cipher.final
end
data = 'Hello2'
enc_data, key, iv, auth_tag = encrypt(data)
original_data = decrypt(enc_data, key, iv, auth_tag)
if data == original_data
puts "Yes"
end
的情况下关闭了终端。结果是随后的gtkterm会话给了我错误:
gtkterm
通过gtkterm
检查流程列表并未显示任何Device /dev/ttyUSB0 is locked.
进程仍在运行。
我通过简单地删除ps
来纠正此问题。在这之后,gtkterm能够成功打开ttyUSB0。
答案 2 :(得分:2)
/dev/ttyUSB0: 18328
答案 3 :(得分:0)
规范的方法是使用lockdev。这样可以在/run/lock/lockdev/
中(至少在CentOS 7.x下)按设备管理锁定文件。
lockdev <device>
可以在没有root用户的情况下使用,如果设备已被锁定,则返回非零值,在这种情况下,可以使用lockdev -u <device>
对其进行解锁。
这显然已经过时了,但是minicom
(至少从版本2.6.2开始)仍在使用它。