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