如何查找和停止在Linux中锁定串口的内容

时间:2014-08-14 14:55:11

标签: python linux serial-port pyserial

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

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

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

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

所以我用超级用户privelleges(sudo python)运行它,我得到了回复:

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

所以我猜设备被某些东西锁定了。但是我怎样才能找出锁定它的方法,以及如何阻止它?

1 个答案:

答案 0 :(得分:1)

我会尝试:

lsof /dev/ttyACM1

你可能需要抓住lsof,因为默认情况下它可能没有安装在你的。

Per lsof的手册页:

  

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