【问题标题】:How to find and stop what has locked a serial port in Linux如何在 Linux 中查找并停止锁定串行端口的内容
【发布时间】:2014-08-14 14:55:11
【问题描述】:

我正在尝试使用 pyserial 连接到 makerbot 3d 打印机。给我带来麻烦的连接代码部分是这样的:

import serial
file = serial.Serial('/dev/ttyACM1', 115200, timeout=1)

当我按原样运行它(即只是 python)时,我得到:

[Errno 13] Permission denied: '/dev/ttyACM1'

所以我用超级用户权限(sudo python)运行它,然后我得到了这个:

serial.serialutil.SerialException: pid 3516 could not open port /var/lock/LCK..ttyACM1: locked by PID 1054

所以我猜设备被什么东西锁定了。但是我怎样才能知道是什么锁定了它,以及如何阻止它呢?

【问题讨论】:

  • 您可以使用 ps -aux | grep 1054 查找 PID 1054 并查看它是什么程序。

标签: python linux serial-port pyserial


【解决方案1】:

我会尝试:

lsof /dev/ttyACM1

你可能需要获取 lsof,因为它可能没有默认安装在你的 dist 上。

根据 lsof 的手册页:

Lsof 在其标准输出文件中列出有关进程打开的文件的信息 [...] 打开的文件可以是常规文件、目录、块特殊文件、字符特殊文件、正在执行的文本引用、库、流或网络文件(Internet 套接字、NFS 文件或 UNIX 域socket.) 可以通过路径选择特定文件或文件系统中的所有文件。

【讨论】:

  • 你能解释一下这是做什么的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-29
  • 2013-07-24
  • 2011-05-10
  • 2016-04-25
  • 2019-04-23
相关资源
最近更新 更多