2010-10-18 24 views
11

Có nơi ưa thích nào để lưu trữ tệp pid cho một daemon chạy với tư cách người dùng không?/var/run là nơi chuẩn, nhưng điều này là cho một daemon người dùng để nó không có quyền ghi ở đó. Có lẽ daemon của tôi sẽ được bắt đầu từ .profile hoặc .bashrc hoặc một cái gì đó. Chỉ cần lưu nó vào/tmp một ý tưởng tồi?Lưu trữ tệp pid để chạy daemon với tư cách người dùng

+2

Tiết kiệm đến/tmp là không tốt vì bất kỳ quy ước đặt tên bạn muốn phát minh ra (ví dụ '/ tmp// .pid') có thể đã được ứng dụng khác sử dụng và bạn sẽ không thể tạo tệp. Sử dụng một tên ngẫu nhiên dưới '/ tmp' làm hỏng ý tưởng của tập tin pid - để có thể lấy được pid một cách nhanh chóng mà không cần quét danh sách quy trình. –

Trả lời

8

Nếu nó đang được chạy cho người dùng, chúng ta hãy xem, loại lưu trữ nào tồn tại mà người dùng cụ thể.

Hmmm.

Vậy đó! Thư mục chính. Tôi biết nó sẽ đến với tôi cuối cùng :-)


Xin lỗi vì ánh sáng đâm. Nghiêm túc, tôi sẽ chỉ stash PID vào $HOME/.daemon.pid hoặc ~/.daemon.pid (cách bạn đặt tên tệp là tùy thuộc vào bạn tất nhiên).

Đây là, tất nhiên, giả sử bạn sẽ chỉ có một daemon chạy cho người dùng. Nếu không, bạn sẽ cần phải có một chút phức tạp hơn.


Và hy vọng allaying nỗi sợ hãi của bạn mà người dùng sẽ vô tình xóa các tập tin không rõ trong thư mục chính của họ, đó là lý do tại sao bạn thực hiện nó "ẩn" bằng cách bắt đầu với một nhân vật ..

Hầu hết người dùng không có kinh nghiệm sẽ không bao giờ thậm chí là xem những người dùng này và có kinh nghiệm nên biết rõ hơn là muck với họ.

+0

Vâng người dùng thấy thư mục hom, và tôi nghĩ rằng họ sẽ có nhiều khả năng để xóa các tập tin nếu họ nhìn thấy nó trong ~ không biết nó là gì – Falmarri

+1

@ Falmarri: Và những gì là mối nguy hiểm trong đó? Nếu bạn thực sự cần PID một lần nữa, bạn luôn có thể tìm trong bảng tiến trình. Tệp PID chỉ là một tiện ích. –

+4

Đó là lý do tại sao bạn đặt một '.' trước mặt nó. Người dùng không biết họ đang làm gì có lẽ sẽ không bao giờ biết rằng nó tồn tại. Và nếu họ thường xuyên nhìn thấy các tập tin ẩn, chỉ cần một sai lầm xóa '. Bashrc' sẽ dạy cho họ các lỗi của cách của họ :-) Nếu bạn đang _really_ hoang tưởng, đặt PID vào' ~/.dont_EVER_delete_me_or_you_WILL_be_sorry/.daemon.pid' . – paxdiablo

0

Tôi đề nghị bạn nên tìm một thư mục con trong thư mục chính của người dùng.

~/.programname/.pid 

Nếu có bất kỳ dữ liệu cấu hình người dùng nào khác, bạn cũng có thể lưu trữ ở đây để tránh làm lộn xộn thư mục chính.

8

Các XDG Basedir specification xác định nơi bạn nên lưu trữ các.
Biến số $XDG_RUNTIME_DIR xác định vị trí của nó, mặc dù nó không có mặc định.
Dự phòng phổ biến nhất (nếu biến không được đặt) là /tmp/service-$USER.id.

này giúp giữ homedirs gọn gàng, trong khi vẫn giữ tất cả dữ liệu thời gian chạy trong

Các vấn đề liên quan