Tôi đã sử dụng exec 3<>/dev/tcp/192.168.0.101/6435
để thiết lập kết nối TCP với 192.168.0.101:6435. Và tôi đã nhận được cũng như gửi một vài tin nhắn với pipe
lệnh.
Bây giờ, tôi muốn chấm dứt kết nối TCP. Nhưng, với ss -anpet
tôi có thể thấy rằng chính bash giữ kết nối này, mà không cần xử lý một tiến trình con.
Tôi đã cố gửi tín hiệu 9 và 15 đến quy trình bash, nhưng như bạn biết, bash không thể tự chết.
Vì vậy, tôi có thể chấm dứt kết nối TCP mà tôi đã thiết lập mà không chấm dứt các pts tôi đang sử dụng (không giết chết nó bằng root cũng không gửi Ctrl + D)?
bash
chắc chắn có thể tự sát - mặc dù đó không thực sự là những gì bạn muốn làm ở đây!
@TJM để làm cho câu hỏi hấp dẫn này trở nên hữu ích hơn với người khác, bạn có thể giải thích rõ hơn về
—
arielf
pipe
lệnh bạn đang sử dụng và tôi không thể tìm thấy trên hệ thống của mình không? Gói nào pipe
đến từ đâu? Những thông số (ví dụ) nào bạn có thể truyền cho nó để gửi / nhận dữ liệu qua /dev/tcp/...
kết nối? Cảm ơn.
@arielf Thông thường, tôi là người mới bắt đầu học Khoa học Máy tính và tôi đã tìm thấy cách sử dụng này từ tập lệnh bash shell có tên là sedbot, bạn có thể tìm thấy nó trên Github. Có, tôi không thể tìm thấy bất kỳ tập tin nào
—
TJM
/dev/tcp
, thậm chí không thể tìm thấy /dev/tcp
chính nó. Nhưng, có vẻ như một cách sử dụng đặc biệt mà bạn có thể gửi / nhận dữ liệu cùng với pipe
loại tệp này. Người ta nói rằng sử dụng /dev/tcp/ip/port
cho các kết nối tcp, và /dev/udp/ip/port
cho các gói udp. Đối với tiếng Anh của tôi không tốt lắm, tôi không biết giải thích thế nào cho đúng. Xin vui lòng chỉnh sửa câu hỏi và gửi câu trả lời.
@TJM cảm ơn. Câu hỏi là về
—
thân
pipe
lệnh mà bạn đề cập. Tôi nhìn https://github.com/clsr/sedbot/blob/master/sedbot.bash
. Không có pipe
lệnh ở đó. Nó định nghĩa hai chức năng: readmsg
và sendmsg
để đọc / ghi từ / đến kết nối tương ứng. readmsg
sử dụng IFS= read -r -u 3 -t "$READ_TIMEOUT" line
để đọc từ mô tả tệp 3 vào biến line
và sendmsg
sử dụng echo "$(date +%s.%N) >>> $line" >&4
để ghi vào mô tả tệp 4. Dù sao, điều này làm rõ phương thức đầy đủ. " pipe
Lệnh" đề cập vẫn còn là một bí ẩn đối với độc giả.
bash
với cái vỏ đó không?