我在 CentOS/Red Hat 7.x 上以标准用户帐户使用 nrjavaserial 时遇到问题。 打开 COMx 端口 (/dev/ttySx) 在/var/lock 中创建锁,但/var/lock 只是指向/run/lock 的链接,它(在每次重新启动后)具有 root 所有者和权限。
我找到了两个解决方案:
- 修改 C/C++/Java 源代码并更改默认锁定目录(到/tmp/lock)
- 在每次启动时更改/run/lock 的组权限(以读/写权限拨出组)
哪种方式更好,如何正确使用?
PS 标准用户在拨出组中。
最佳答案
通常由于遗留原因,应用程序将在/var/lock 目录中创建一个锁定文件。只有两个应用程序都使用锁定方案,它们才不会同时访问串口。选项 1 可能不起作用,因为其他应用程序将在/var/lock 目录中查找锁。选项 2 也不是好主意,因为它会引起其他问题。在nrjavaserial源码src/main/c/include/SerialImp.h中看到这个文件
目录/var 或/run 是标准根文件系统的一部分,每次您重新启动时,init.rc 脚本都会覆盖您所做的一切。请描述为什么您会遇到此锁定问题。
关于java - nrjavaserial 和对/var/lock 的权限(链接到/run/lock),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40947333/