Tôi chỉ nhảy vào unix từ một thế giới khác, và muốn biết nếu
while true
do
/someperlscript.pl
done
Bản thân perl script có một trình theo dõi thư mục / tệp thực thi khi các tệp được thay đổi ở vị trí đích.
Đây có phải là while true
một ý tưởng tốt? Nếu không, một cách tiếp cận mạnh mẽ ưa thích là gì?
TIA
EDIT: Vì điều này dường như đã tạo ra một chút quan tâm, đây là kịch bản hoàn chỉnh. Tập lệnh perl tự xem một thư mục bằng cách sử dụng trình xem tập tin. Khi nhận được tệp mới (chúng đến thông qua rsync), nó sẽ chọn tệp mới và xử lý nó. Bây giờ các tệp đến có thể bị hỏng (đừng hỏi .. đến từ mâm xôi pi) và đôi khi quá trình có thể không thể xử lý được. Tôi không biết chính xác tại sao, vì chúng tôi chưa nhận thức được tất cả các kịch bản.
NHƯNG - nếu vì lý do nào đó không thành công, chúng tôi muốn nó hoạt động và chạy và xử lý tệp tiếp theo, vì tệp tiếp theo hoàn toàn không liên quan đến tệp trước đó có thể gây ra lỗi.
Thông thường tôi sẽ sử dụng một số loại bắt tất cả và bọc toàn bộ mã xung quanh nó để nó KHÔNG BAO GIỜ bị hỏng. Nhưng không chắc chắn cho perl.
Từ những gì tôi đã hiểu, sử dụng một cái gì đó như giám sát là một cách tiếp cận tốt cho việc này.
inotify
API để có thể tránh vòng lặp bận rộn chờ các tệp thay đổi trong thư mục đích của bạn.