2013-04-03 23 views
8

Mam kilka procesów, które rozmawiają ze sobą za pośrednictwem nazwanych potoków. Obecnie tworzę wszystkie moje potoki lokalnie i utrzymuję aplikacje w tym samym katalogu roboczym. W pewnym momencie zakłada się, że te programy mogą (i będą) uruchamiane z różnych katalogów. Potrzebuję utworzyć te rury, których używam w znanej lokalizacji, więc wszystkie różne aplikacje będą w stanie znaleźć potrzebne rury.Jakie jest właściwe miejsce do umieszczania nazwanych potoków w systemie Linux?

Jestem nowy w pracy z Linuksem i nie znam struktury systemu plików. W systemie Windows użyłbym czegoś takiego jak folder AppData, aby zachować te przewody. Nie jestem pewien, co to jest odpowiednik w Linuksie.

Katalog wygląda tak, jakby prawdopodobnie mógł dobrze funkcjonować. Czytałem w kilku miejscach, że zostało wyczyszczone podczas zamykania systemu (i to w porządku, nie mam prawdopodobnie ponownego utworzenia rur, gdy zaczynam się archiwizować). Ale widziałem, że kilka innych osób twierdzi, że przegrywają pliki gdy system jest podniesiony, tak, jakby był czyszczony okresowo, a nie chcę, aby się działo, podczas gdy moje aplikacje używają tych rur!

Czy jest miejsce bardziej dostosowane do konkretnych sklepów? Czy też byłoby to miejsce, które chciałbym zatrzymać (ponieważ są one przecież tymczasowe)?

Odpowiedz

7

Widziałem SaltStack przy użyciu /var/run. Jedynym problemem jest to, że do uzyskania dostępu do tego katalogu potrzebujesz dostępu z uprawnieniami administratora, ale załóżmy, że uruchomisz swój proces jako demon systemu. SaltStack tworzy /var/run/salt w czasie instalacji i zmienia właściciela na salt, aby później mógł być używany bez uprawnień root'a.

Ja również sprawdzone Standardem hierarchii systemu plików i mimo, że naprawdę nie jest ważne tak dużo, nawet mówią: Programy

systemowe, które utrzymują przemijające gniazda UNIX domeny należy umieścić je w tym katalogu.

Od nazwanych potoków są bardzo podobne, chciałbym pójść w ten sam sposób.

+0

Przepraszam, że nie widzę twojej odpowiedzi wcześniej, ale jest to dokładnie taka odpowiedź, której szukałem. Nie wiedziałem o "[Hierarchii Standardowej Systemu plików] (http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard#Directory_structure)" i najwyraźniej ma ona wiele gadżetów informacyjnych dla początkującego programisty systemu Linux, takiego jak ja. Oprócz '/ var/run' wygląda na to, że'/var/tmp' jest również dopuszczalne dla mojego przypadku użycia, ponieważ zachowuje je również poprzez ponowne uruchomienie. Jeszcze raz, dzięki za banda! – nitz

+0

Cieszę się, że pomogłem ;-) – tchap

3

W nowszych dystrybucjach linuksowych z Systemd /run/user/<userid> (tworzone przez pam_systemd podczas logowania, jeśli nie istnieje) może być użyty do otwarcia gniazda i wysyłanie plików .pid tam zamiast /var/run gdzie tylko root ma dostęp. Zauważ też, że /var/run jest dowiązaniem symbolicznym do /run, więc można również użyć . Aby uzyskać więcej informacji, sprawdź: this thread. Chodzi o to, że demony systemowe powinny mieć katalog /var/run/<daemon name>/ utworzony podczas instalacji z odpowiednimi uprawnieniami i umieszczać tam swoje pliki gniazd/pid, podczas gdy demony uruchamiane przez użytkownika (np. Pulseaudio) powinny używać /run/user/<userid>/. Inna opcja to /tmp i /var/tmp.