Có cách nào dễ dàng để khởi động lại không?


48

Giả sử tôi có một tmuxcửa sổ (1.7) được phân chia như sau:

 ________________________
|           1            |
|                        |
|-----------+------------|
|     2     |      3     |
|___________|____________|

Bây giờ, kích thước dọc đã được tùy chỉnh, do đó, đây không phải là một trong những bố cục mặc định.

Thỉnh thoảng, khi một chương trình bị kẹt hoặc khi bạn khởi động lại máy mà bạn đã kết nối qua ssh, ngăn "treo". Tức là không có gì khác hơn là kill-panexuất hiện để làm việc.

Tuy nhiên, vì không có cách nào dễ dàng để xây dựng lại cấu hình phân chia trên khi khung số 1 đã được kill-paned, tôi muốn "khởi động lại" nó.

Câu trả lời:


81

Nhìn vào hướng dẫn, lệnh respawn-paneđánh tôi, nhưng hóa ra là nó không hoạt động. Đọc kỹ hơn, hóa ra đó respawn-pane -klà câu trả lời, vì nó sẽ giết lệnh đang chạy.

Bằng cách này, một khung có thể được "khởi động lại" và sinh ra một lần nữa tại chỗ.

Vì vậy, <prefix>+ :và sau đó nhập respawn-pane -kvà nhấnEnter


4
Hoặc sử dụng mà không có -knếu bạn tạo khung trong remain-on-exitchế độ và tự giết lệnh.
peterph

ngươi đã được sinh ra một lần nữa, amen
đúng nghĩa là

4

Trên thực tế, có một cách để xây dựng lại bố cục - list-windowscung cấp cho bạn một mô tả bố cục cho tất cả các cửa sổ trong một phiên và select-layoutcó thể tiêu hóa phân tích chuỗi và đặt bố cục một cách thích hợp (xem select-layouttrong trang man tmux(1)).

Đối với vấn đề ssh của bạn - máy chủ ssh sẽ đóng kết nối một khi hệ thống tắt (mặc dù tôi đã thấy một số bản phân phối Linux bằng cách nào đó làm rối hành vi đúng bằng cách không tắt trình nền ssh và chạy phiên đúng cách) - nếu đó là trường hợp, xem ESCAPE CHARACTERSphần (và các vị trí khác đề cập đến nó) trong ssh(1)ký tự thoát theo sau .(một dấu chấm) mạnh mẽ chấm dứt kết nối ở phía máy khách. Tất nhiên nó không có ích gì nếu bạn chỉ sinh ra khung với sshviệc chạy trong nó, nhưng nếu bạn gặp vấn đề thường xuyên hơn, có lẽ bạn muốn chạy một cái vỏ trong khung và gọi ssh từ đó.


Tôi nêu lên câu trả lời của bạn, bởi vì nó làm tăng giá trị. Nhưng đây là lý do tại sao các ký tự thoát không nhất thiết phải là một ý tưởng hay: sử dụng phiên ssh để kết nối với phiên tmux có kết nối ssh mở. Sau đó, bạn đột nhiên cần phải suy nghĩ về cách gửi ký tự thoát ra ngoài kết nối ssh đầu tiên để đến được (các) bên trong. Và btw, tôi thường chạy ssh từ shell.
0xC0000022L

1
Khá nhiều điều tương tự như khi bạn đang chạy các phiên tmux lồng nhau. Hoặc bạn có các ký tự thoát khác nhau trong phiên bên ngoài và bên trong (có thể là ssh hoặc tmux một) hoặc bạn chỉ cần gửi ký tự thoát hai lần - làm cho nó đi như một lần duy nhất vào phiên lồng nhau (hành vi có dây cứng cho ssh, có thể định cấu hình trong tmux).
peterph
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.