Ngăn chặn socat chấm dứt khi đầu kia đóng cửa


11

Tôi muốn chuyển hướng một đầu vào và đầu ra của ứng dụng đến một ổ cắm unix và kết nối với ổ cắm đó từ một phiên khác. Những gì tôi đang làm cho đến nay là như sau:

Về phía "máy chủ":

socat EXEC:"command" UNIX-LISTEN:/tmp/comm

Và về phía "khách hàng":

socat UNIX-CONNECT:/tmp/comm -

Nó hoạt động khá tốt, nhưng ngay khi phía máy khách socatchấm dứt, máy chủ cũng chấm dứt. Nhưng tôi muốn nó tiếp tục chạy và kết nối lại sau ... Làm thế nào để tôi hoàn thành nó?

Câu trả lời:


12

Bạn phải sử dụng forktùy chọn, xử lý một kết nối trong một tiến trình con, làm cho tiến trình cha mẹ cố gắng xử lý nhiều kết nối hơn.

Trong thiết bị đầu cuối đầu tiên:

$ socat - UNIX-LISTEN:/tmp/comm,fork

Trong thiết bị đầu cuối thứ hai:

$ socat UNIX-CONNECT:/tmp/comm -

Nhấn Ctrl+ Ctrong thiết bị đầu cuối thứ hai, chuyển sang thiết bị đầu cuối đầu tiên và xem máy chủ của bạn vẫn đang chạy.

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.