java - nrjavaserial 和对/var/lock 的权限(链接到/run/lock)

标签 java linux serial-port locking

我在 CentOS/Red Hat 7.x 上以标准用户帐户使用 nrjavaserial 时遇到问题。 打开 COMx 端口 (/dev/ttySx) 在/var/lock 中创建锁,但/var/lock 只是指向/run/lock 的链接,它(在每次重新启动后)具有 root 所有者和权限。

我找到了两个解决方案:

  1. 修改 C/C++/Java 源代码并更改默认锁定目录(到/tmp/lock)
  2. 在每次启动时更改/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/

相关文章:

java - 等待 JUnit 测试用例中测试的代码生成的所有线程

java - 在 Java 中获取可用 RAM

linux - 输出包括使用 Awk 检查的每个条件的空行

php - Linux 中的 web_sockets 等价物在哪里?

android串口api读取数据问题

python - 哪种语言更适合串行编程和使用 MySQL 数据库? Python?真实基础?

java - 如何在 ruby​​ 中将 java.util.Date 格式化为 "MM/dd/yyyy"格式的日期?

java - 我们需要运行多少次 Java 程序来预热 JVM?

java - 浮点运算和 double ?

python - Jython 比 Python 快吗?