Trong nhận xét của bạn về câu trả lời của fons, bạn nói rằng nó không hoạt động trong khi sử dụng screen
.
Bạn có thể giải thích về điều đó? Nhìn vào mã nguồn cho openssh, sshd thực thi lệnh bằng cách gọi
YOUR_DEFAULT_SHELL -c COMMAND
Vì vậy, ví dụ, nếu vỏ mặc định của bạn là screen
, thì điều này sẽ không làm việc tất cả những gì tốt vì screen
's -c
cờ chỉ ghi đè nó .scrreenrc
. Vì vậy, thực sự không có cách nào để gửi lệnh tới màn hình nếu đó là vỏ mặc định của bạn. Bạn sẽ phải thực sự chạy màn hình như lệnh được đưa cho ssh, nhưng với lớp vỏ mặc định không phải là màn hình .
Nếu đó là những gì bạn đang cố gắng thực hiện, tôi nghĩ mọi thứ sẽ trở nên thực sự kỳ lạ, vì screen
cũng sẽ đóng cửa sổ với các chương trình không tương tác, vì vậy bạn sẽ phải thực hiện một thủ thuật tương tự với fons, nhưng sâu hơn một cấp. SO, với, ví dụ / bin / bash (và không phải màn hình) làm vỏ mặc định của bạn Một cái gì đó như:
ssh user@host -t 'screen bash -l -c "ls;bash"'
Mà nên - hít một hơi thật sâu - ssh vào máy chủ, chạy bash -c bằng lệnh màn hình, sẽ tạo ra một cửa sổ mới. Nếu cửa sổ này vừa mở ls, nó sẽ kết thúc và màn hình sẽ chấm dứt, vì vậy chúng tôi sử dụng thủ thuật của fons bên trong cửa sổ màn hình mới .
Tôi nghĩ rằng nó sẽ hoạt động, nếu đó là ngay cả những gì bạn đang cố gắng làm;)