Câu trả lời:
tập tin pid được viết bởi một số chương trình để ghi lại ID tiến trình của chúng trong khi chúng đang bắt đầu. Điều này có nhiều mục đích:
kill
lệnh đơn giản nếu muốn kết thúc nó.Tất nhiên, sự hiện diện của một tệp pid không đảm bảo rằng id quá trình cụ thể đó đang chạy, tất nhiên, vì vậy phương pháp này không thể đánh lừa 100% nhưng "đủ tốt" trong nhiều trường hợp. Kiểm tra xem một PID cụ thể có tồn tại trong bảng quy trình không hoàn toàn di động trên các hệ điều hành giống như UNIX trừ khi bạn muốn phụ thuộc vào ps
tiện ích, điều mà có thể không mong muốn gọi trong mọi trường hợp (và tôi tin rằng một số hệ điều hành giống UNIX thực hiện ps
khác nhau nào).
Các tệp khóa được các chương trình sử dụng để đảm bảo hai trường hợp riêng biệt (hoạt động tốt) của một chương trình, có thể đang chạy đồng thời trên một hệ thống, không truy cập cùng lúc một thứ khác. Ý tưởng là trước khi chương trình truy cập vào tài nguyên của nó, nó sẽ kiểm tra sự hiện diện của tệp khóa và nếu tệp khóa tồn tại, có thể xảy ra lỗi hoặc đợi nó biến mất. Khi nó không tồn tại, chương trình muốn "thu nhận" tài nguyên tạo tệp và sau đó các trường hợp khác có thể gặp sau này sẽ chờ quá trình này được thực hiện với nó. Tất nhiên, điều này giả định chương trình "có được" khóa thực sự giải phóng nó và không quên xóa tệp khóa.
Điều này hoạt động vì hệ thống tệp trong tất cả các hệ điều hành giống như UNIX thực thi tuần tự hóa , có nghĩa là chỉ một thay đổi đối với hệ thống tệp thực sự xảy ra tại bất kỳ thời điểm nào. Sắp xếp giống như khóa với cơ sở dữ liệu và như vậy.
Các tệp này thường được sử dụng bởi trình nền chỉ nên chạy một lần trên hệ thống. Tệp PID thường chứa số ID tiến trình của chương trình đã khởi chạy và đang chạy nếu có. Ngoài ra, khi nó khởi động, nó tạo tập tin khóa. Miễn là tệp khóa tồn tại, nó sẽ không bắt đầu một tệp khác mà không có sự can thiệp của người dùng. Nếu tệp khóa tồn tại và id quá trình được đề cập trong tệp pid không chạy, daemon được coi là ở trạng thái "chết", có nghĩa là nó được chạy nhưng có lẽ không phải do sự cố hoặc tắt máy không đúng cách . Điều này có thể bắt đầu một kịch bản khởi động / khởi động lại đặc biệt cho một số chương trình. Tắt nó đúng cách sẽ loại bỏ các tập tin khóa.
Một tệp PID sẽ chứa ID tiến trình của một quy trình đang chạy. Điều này có nhiều cách sử dụng khác nhau; bạn có thể đọc nó và kiểm tra xem tiến trình có còn chạy không và thực hiện hành động thích hợp hoặc đọc nó và giết tiến trình.
Một tập tin khóa rất có thể là ứng dụng cụ thể. Các tệp khóa được sử dụng để chỉ ra rằng một số tài nguyên đang được sử dụng và quá trình muốn truy cập phải đợi cho đến khi tài nguyên được giải phóng trước khi tiếp tục.
.lck
tệp trong thư mục của VM nếu không nó sẽ cho bạn biết nó đang được sử dụng khi bạn cố gắng khởi động nó.