2013-04-03 54 views
8

Tôi có một vài quy trình nói chuyện với nhau thông qua các đường ống có tên. Hiện tại, tôi đang tạo tất cả các đường ống của mình tại địa phương và giữ các ứng dụng trong cùng thư mục hoạt động. Tại một số điểm, nó giả định rằng các chương trình này có thể (và sẽ) được chạy từ các thư mục khác nhau. Tôi cần phải tạo ra những đường ống tôi đang sử dụng ở một vị trí đã biết, vì vậy tất cả các ứng dụng khác nhau sẽ có thể tìm thấy các đường ống mà họ cần.Nơi thích hợp để đặt các đường ống có tên trên Linux là gì?

Tôi mới làm việc trên Linux và không quen thuộc với cấu trúc hệ thống tệp. Trong Windows, tôi sẽ sử dụng một cái gì đó giống như thư mục AppData để giữ những ống này. Tôi không chắc những gì tương đương là trong Linux.

Thư mục /tmp có vẻ như nó có thể hoạt động tốt. Tôi đã đọc ở một vài nơi mà nó bị xóa trên hệ thống tắt máy (và đó là tốt, tôi không có thể tái tạo các đường ống khi tôi bắt đầu trở lại.) Nhưng tôi đã nhìn thấy một vài người khác nói rằng họ đang mất tập tin trong khi hệ thống đang hoạt động, như thể nó được làm sạch định kỳ, mà tôi không muốn xảy ra trong khi các ứng dụng của tôi đang sử dụng những đường ống đó!

Có một địa điểm nào phù hợp hơn cho các cửa hàng ứng dụng cụ thể không? Hoặc có thể /tmp là nơi mà tôi muốn giữ những điều này (vì chúng là sau khi tất cả, tạm thời.)?

Trả lời

7

Tôi đã xem SaltStack sử dụng /var/run. Vấn đề duy nhất là bạn cần quyền truy cập root để ghi vào thư mục đó, nhưng hãy nói rằng bạn sẽ chạy tiến trình của bạn như một daemon hệ thống. SaltStack tạo /var/run/salt tại thời điểm cài đặt và thay đổi chủ sở hữu thành salt để sau này có thể được sử dụng mà không có đặc quyền root.

Tôi cũng đã kiểm tra các tiêu chuẩn cấp bậc Filesystem và mặc dù nó không phải là thực sự quan trọng rất nhiều, thậm chí họ nói: chương trình

Hệ thống duy trì ổ cắm UNIX-miền thoáng qua phải đặt chúng trong thư mục này.

Vì ống được đặt tên là một cái gì đó rất giống nhau, tôi sẽ đi theo cùng một cách.

+0

Tôi xin lỗi vì không thấy câu trả lời của bạn trước đó, nhưng đây chính xác là loại phản hồi mà tôi đang tìm kiếm. Tôi đã không nhận thức được '[Hệ thống phân cấp hệ thống tiêu chuẩn] (http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard#Directory_structure)', và rõ ràng đó là có tất cả các loại thông tin goodies cho một nhà phát triển Linux non trẻ như bản thân mình. Ngoài '/ var/run', có vẻ như'/var/tmp' cũng được chấp nhận cho trường hợp sử dụng của tôi, vì nó cũng bảo toàn chúng thông qua khởi động lại. Một lần nữa, cảm ơn một bó! – nitz

+0

Vui vì tôi đã giúp ;-) – tchap

3

On distro Linux mới hơn với systemd /run/user/<userid> (tạo ra bởi pam_systemd trong khi đăng nhập nếu nó chưa tồn tại) có thể được sử dụng để mở cửa ổ cắm và đưa file .pid có thay vì /var/run nơi chỉ có root có quyền truy cập. Cũng lưu ý rằng /var/run là một liên kết tượng trưng đến /run vì vậy /var/run/user/<userid> cũng có thể được sử dụng. Để biết thêm thông tin, hãy truy cập this thread. Ý tưởng là các daemon hệ thống nên có một thư mục /var/run/<daemon name>/ được tạo trong khi cài đặt với các quyền thích hợp và đặt các tệp socket/pid của chúng trong đó trong khi daemon chạy bởi người dùng (chẳng hạn như pulseaudio) nên sử dụng /run/user/<userid>/. Một tùy chọn khác là /tmp/var/tmp.