Tệp .pid là gì và nó chứa gì?


199

Gần đây tôi bắt gặp một tệp có phần mở rộng .pid và khám phá bên trong nó nhưng không tìm thấy nhiều. Các tài liệu nói:

Pid-File là một tệp chứa số nhận dạng quy trình (pid) được lưu trữ ở một vị trí được xác định rõ của hệ thống tệp, do đó cho phép các chương trình khác tìm ra pid của tập lệnh đang chạy.

Bất cứ ai cũng có thể làm sáng tỏ hơn về điều này, hoặc hướng dẫn tôi chi tiết về những gì có trong tập tin pid?

Câu trả lời:


210

Các tệp pid chứa id quá trình (một số) của một chương trình đã cho. Ví dụ, Apache HTTPD có thể ghi số tiến trình chính của nó vào tệp pid - là tệp văn bản thông thường, không có gì hơn thế - và sau đó sử dụng thông tin có trong đó để tự dừng lại. Bạn cũng có thể sử dụng thông tin đó để tự hủy quá trình, sử dụngcat filename.pid | xargs kill


4
Tại sao không tra cứu quá trình theo tên sau đó? Tại sao phải duy trì các tệp .pid khi bạn chỉ có thể chạy "pidof $ process_name" và nhận ID?
Shnatsel

14
@Shnatsel: bởi vì có thể có hai quá trình với tên đó đang chạy và bạn cần biết cái nào chịu trách nhiệm cho tệp PID đó . Có nhiều lý do khác, chi tiết hơn được tìm thấy ở đây: unix.stackexchange.com/questions/12815/iêu
user4815162342

2
Trong trường hợp đó, sẽ có 2 tệp pid và bạn sẽ phải đối mặt với cùng một vấn đề như với tra cứu PID. Vì vậy, pidfiles không có tác dụng tốt và chỉ làm phức tạp mọi thứ trong kịch bản này cũng như bất kỳ kịch bản nào khác mà tôi có thể nghĩ ra. Tôi nghi ngờ chúng sẽ xuất hiện trước khi các Procfs đã làm hoặc chúng được sử dụng như một công cụ di động bởi vì các giao diện của Procfs khác nhau, ví dụ như Solaris khá khác so với trên Linux.
Shnatsel

3
Chỉ một điều: echo filename.pid | xargs killsẽ không giết quá trình. Tôi đoán bạn có nghĩa là: echo $(cat filename.pid) | xargs kill hoặc echo <process ID> | xargs kill.
Alexandro de Oliveira

2
@AlexandrodeOliveira Có lợi thế khi sử dụng tiếng vang và tiếng mèo thay vì chỉ cat filename.pid | xargs kill?
Simon A. Eugster

-1

Để hiểu các tệp pid, hãy tham khảo DOC này

Đôi khi có một số ứng dụng yêu cầu hỗ trợ thêm các plugin và tiện ích bổ sung. Vì vậy, nó theo dõi các tiện ích và quá trình plugin chạy id bằng tệp pid này để tham khảo.

Đó là lý do tại sao bất cứ khi nào bạn khởi động lại một ứng dụng, tất cả các plugin và ứng dụng phụ thuộc cần thiết phải được khởi động lại vì tệp pid sẽ trở nên cũ.


8
Liên kết đầu tiên của bạn không thực sự trả lời câu hỏi.
Brian

5
Trong khi các tài liệu được liên kết về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
Toby Speight
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.