Khởi chạy một daemon khi kết nối mạng


0

Tôi quen với việc khởi chạy một daemon khi thay đổi tệp hoặc thư mục bằng cách thêm WatchPaths khóa / giá trị trong danh sách của daemon. Tuy nhiên, dường như không có tùy chọn để xem kết nối mạng. Tôi có thể xác định xem kết nối cụ thể mà tôi quan tâm có mở thông qua không lsof -n -i. Các -i phần của trang người đàn ông của lsof thậm chí nói về kết quả của lệnh này dưới dạng "tệp":

chọn danh sách các tệp mà bất kỳ địa chỉ Internet nào khớp với địa chỉ được chỉ định trong i. Nếu không có địa chỉ được chỉ định, tùy chọn này sẽ chọn danh sách của tất cả các tệp mạng Internet và x.25 (HP-UX).

Vì vậy, suy nghĩ của tôi là nếu các kết nối mạng được biểu diễn dưới dạng các tệp tạm thời ở đâu đó trên máy tính, tôi sẽ có thể xem các tệp đó và thực thi tập lệnh của mình khi chúng xuất hiện. Nếu chúng thực sự được thể hiện dưới dạng tệp, tôi không biết chúng cư trú ở đâu.

Vì vậy, các kết nối mạng được thể hiện dưới dạng tệp ở đâu đó trên máy tính? Nếu vậy, làm thế nào tôi có thể tìm thấy vị trí của họ để tôi có thể xem cho họ?


Nói chung, tôi không thấy nó sẽ hoạt động như thế nào..có gì khác biệt khi bạn kết nối tại nơi làm việc, nơi các tập tin được kết nối với nhau tại quán cà phê nơi chúng không hoạt động? Có lẽ bạn có thể sử dụng một tập lệnh bash gọi networksetup getifaddr en0 để có được mạng của bạn và để nó chạy một lần mỗi phút thông qua launchd?
Allan

@ Allan Tôi biết ví dụ khi tôi gọi điện thoại từ máy tính của mình, hai kết nối UDP được mở và hiển thị qua lsof và khi tôi gác máy thì chúng bị đóng. Nếu các kết nối này tạo tập tin ở đâu đó, tôi sẽ có thể xem chúng và khởi chạy trình nền của mình
wetjosh
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.