Làm gián đoạn sản lượng rất dài trong tmux


8

Trong một thiết bị đầu cuối (gnome), nếu tôi catlà một tệp quá dài, tôi luôn có thể nhấn Ctrl- cđể ngắt.

Tuy nhiên, trong tmuxtrường hợp tương tự xảy ra, phải mất nhiều thời gian để tín hiệu được tạo ra Ctrl- cnhấn phím đến máy chủ và cho đến khi điều đó xảy ra, máy chủ đang bận rộn với đầu ra này và tôi không thể làm gì ngoài việc xem lũ (hoặc sử dụng một thiết bị đầu cuối khác).

Điều này hơi giống với vấn đề được mô tả ở đây .

Tôi không muốn khởi động lại thiết bị đầu cuối, máy chủ hoặc thậm chí tmuxcửa sổ / khung cụ thể ; sử dụng lesslà một thói quen thông minh, nhưng tôi hỏi ở đây về cách giải quyết các vấn đề đã xảy ra, không phải làm thế nào để thông minh và tránh chúng bằng cách suy nghĩ trước khi hành động ... sẽ luôn có những điều bất ngờ!

Vì vậy, có cách nào để thiết bị đầu cuối ngăn chặn lũ lụt, loại bỏ dữ liệu đã gửi, v.v.? Bất cứ điều gì tôi có thể làm để giải phóng bản thân khỏi những phút khó chịu khi xem các nhân vật trên màn hình của mình?



1
Cung cấp cho nó một cái nhìn về SuperUser quá
Hastur

Không phải là một câu trả lời, nhưng bạn cũng có thể sử dụng headhoặc tailđể có được đầu ra vừa đủ.
MatthewRock

Câu trả lời:


4

Hai đề nghị

  1. Ít khi trong trường hợp như thế này CTRL+ z hiệu quả hơn CTRL+ c: nó trả lời nhanh hơn. Sau đó, bạn tạm dừng lệnh bạn có thể giết nó bằng kill %1hoặc bất cứ thứ gì là số công việc. Với hy vọng bạn vẫn có thể đọc bất cứ thứ gì từ màn hình (một văn bản nhị phân ngẫu nhiên tràn ngập có thể dễ dàng làm rối bộ ký tự của bạn).

  2. Trong một thiết bị đầu cuối khác, bạn có thể hỏi pgrep cat(nếu catlệnh được gọi) và xác định catquá trình đang sử dụng cpu của bạn hoặc bằng cách pstree:

    pgrep cat | awk '{print "pstree -sp "$1}' | sh | grep tmux

    trả lời với một đầu ra như
    init (1) --- lightdm (1428) --- lightdm (2518) --- init (2534) --- tmux (22425) --- bash (22426) --- cat ( 22532 )

    Trong trường hợp này, sau khi bạn chỉ cần killsự cat PID:
    kill 22532

Ghi chú:

  • Nếu bạn nhấn CTRL+ Choặc CTRL+ zvà sau khi bạn thu nhỏ cửa sổ, có thể hệ thống sẽ nhanh hơn bạn để đọc yêu cầu ngắt . Vì vậy, đình chỉ / phá vỡ, giảm thiểu, chờ một chút, tối đa hóa một lần nữa, cũng có thể là một giải pháp.
  • Như bạn đã nói lesslà an toàn hơn.
  • Đã thử nghiệm lại với tmux 1.8 và hoạt động

Ngược lại @jetole: Trong IMHO, nó trả lời một cách tổng quát đưa ra ít nhất hai giải pháp, mà bạn có thể sử dụng ngay cả khi không có tmux. Tất nhiên đề xuất của bạn cũng có thể hoạt động tốt, hoặc thậm chí tốt hơn, như được đề xuất trong một câu hỏi tương tự trên Superuser của ngày 22 tháng 4 năm 13
Hastur

@jetole: Hãy để chúng tôi tránh bất kỳ querelle nào : những gì tôi đã đăng tôi đã thử và nó hoạt động như bạn có thể đoán từ pstreeđầu ra: đó là một thực tế. Tôi nghĩ nó áp dụng cho tình huống khi op hỏi "Tôi đang hỏi ở đây về cách giải quyết vấn đề đã xảy ra , không phải làm thế nào để thông minh và tránh chúng bằng cách suy nghĩ trước khi hành động ..." . Giải pháp của bạn, mà tôi tin rằng nó hoạt động và giải quyết vấn đề, đó là một giải pháp thuộc về loại "làm thế nào để thông minh và tránh chúng bằng cách suy nghĩ trước khi ..." :)
Hastur

@jetole: Tôi rất tiếc phải nói rằng bạn đã không đọc kỹ câu trả lời và các bình luận. Tôi đã sử dụng giải pháp này theotmux với một fooding cat textlệnh. Các tmux(22425)tại điểm 2 nên cho bạn biết. BTW Tôi đã cài đặt tmuxtrên một máy mới. Nó hoạt động trở lại như tôi đã nói trước đây. Ví dụ bạn cung cấp sử dụng một echochu kỳ và qua nó: bạn nên chặn for, một lệnh nội bộ, để ngăn chặn lũ lụt bằng một kill PIDlệnh: điều đó có nghĩa là tự giết tmuxchính nó như op không muốn. Với một cat(như đối với op), có một quá trình mà bạn có thể chặn và giết.
Hastur

Khi tôi nói "Tôi rất tiếc phải nói rằng bạn đã không đọc kỹ câu trả lời và các bình luận." Ý tôi là: 1) trong câu trả lời đã được báo cáo (điểm 2) đầu ra pstree -spmà từ đó bạn có thể thấy chuỗi các quá trình ( -s) kết thúc bằng cat (PID=22532). Điều này có cho cha mẹ một bash có cha mẹ là tmux (22425) . có nghĩa là tôi đã chạy thử nghiệm đó với tmux . Kiểm tra liên kết này và bạn thấy rằng nó đã có mặt kể từ phiên bản đầu tiên của ngày 19 tháng 6. 2) trong bình luận ngày 5 tháng 9 Tôi đã nói rõ ràng "Tôi đã thử và làm việc" .
Hastur

Bây giờ bạn đã nói nhiều lần rằng nó không hoạt động. Trong các thử nghiệm của tôi, nó hoạt động. Trong vấn đề nào bạn đã gặp phải trong khi bạn đã thử nó với một con mèo tràn ngập một tập tin lớn (nghiên cứu trường hợp op)? Tôi đã thực hiện trên 2 máy khác nhau. Phiên bản của tmux được báo cáo trong ghi chú (được cập nhật trước bình luận cuối cùng của bạn). Các distro nơi một Ubuntu 14.04 LTS và Debian 2.6.32-5, phiên bản bash 4.3.11 và 4.1.2 tương ứng.
Hastur

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.