linux - 在 Linux 上放置命名管道的正确位置是什么?

标签 linux filesystems pipe named-pipes tmp

我有几个进程通过命名管道相互通信。目前,我正在本地创建所有管道,并将应用程序保存在同一个工作目录中。在某些时候,假设这些程序可以(并且将会)从不同的目录运行。我需要在已知位置创建我正在使用的这些管道,这样所有不同的应用程序都能够找到它们需要的管道。

我刚接触 Linux,不熟悉文件系统结构。在 Windows 中,我会使用 AppData 文件夹之类的东西来保存这些管道。我不确定 Linux 中的等效项是什么。

/tmp 目录看起来可能运行良好。我在一些地方读到它在系统关闭时被清除(这很好,当我重新启动时我可能不会重新创建管道。)但我看到其他一些人说他们正在丢失文件当系统启动时,就好像它被定期清理一样,我不希望在我的应用程序使用这些管道时发生这种情况!

有没有更适合特定应用商店的地方?或者 /tmp 是我想保留这些的地方(因为它们毕竟是临时的。)?

最佳答案

我见过使用 /var/run 的 SaltStack。唯一的问题是您需要 root 访问权限才能写入该目录,但假设您要将进程作为系统守护进程运行。 SaltStack 在安装时创建 /var/run/salt 并将所有者更改为 salt 以便稍后可以在没有 root 权限的情况下使用它。

我还检查了文件系统层次结构标准,尽管它并不是那么重要,即使他们说:

System programs that maintain transient UNIX-domain sockets must place them in this directory.

由于命名管道非常相似,所以我会采用相同的方法。

关于linux - 在 Linux 上放置命名管道的正确位置是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15794696/

相关文章:

linux - 管道将输入拆分为命令

c++ - 在 Windows 中,如何拥有作为重定向管道的非阻塞标准输入?

linux - task_struct 存储在哪里?

mysql - 从数据库sql文件恢复单个mysql表

linux - 将 dd 更改传播到文件系统顶层

关闭管端错误

linux - 设备树 - 探测驱动程序并避免竞争条件

java - 通过 Java 代码检查进程是否在 linux 上运行

windows - 是否有适用于 Windows 的用户模式 ​​ext2 文件系统库?

linux - ext4 分区是否包含有关其自身开始和结束位置的数据?