Dışarıdan bir ekran oturumuna girdi gönderme


18

Benim senaryom şudur:

Uzak bir yerde çalışan bir ekran oturumu var. Bu ekranın içinde konsol tabanlı bir program var. Ekransız çalıştırıldığında, bu program terminalde başlar ve standart girişindeki komutları kabul eder.

Ne istediğim bu komutun konsol programı tarafından alınması için uzaktan bir komut göndermek için bir yoludur. Belki şöyle:

Bilgisayarım -> SSH Mesaj Gönder Oto. -> Ekran Oturumu -> Program (Çalıştır komutu alındı)

Böylece uzaktaki bir bilgisayardan SSH komutları aracılığıyla onları programa gönderen ekrana gönderebilirim. Program onları kabul eder ve yürütür.

Yanıtlar:


17

Doğru anlarsam, ekran oturumunun içinde çalışan bir programa girdi göndermek istersiniz. Bunu ekranın stuffkomutuyla yapabilirsiniz. -XEkran oturumunda komut eklemeden komut yürütmek için ekran seçeneğini kullanın .

screen -S sessionname -p windowname -X stuff 'command1
command2
'

Programın çıktısını görmek istiyorsanız hardcopy, logve logfilekomutlarına bakın.


Daha önce stuff komutunu denedim ancak yalnızca ekrandan olan komutları gönderir. Görüyorsunuz, programla ilgili değil, yalnızca ekranla ilgili komutları kabul ediyor.
Luis Alvarado

@CYREX: stuffKarakterleri aynen yazmışsınız gibi gönderir. Tam olarak ne denediniz, amaçlanan etki neydi ve bunun yerine ne oldu?
Gilles 'SO- kötü olmayı bırak

-P parçasının olduğunu görüyorum. Bende yoktu. Bu bölümü ekledikten sonra komutu şimdi gönderiyor ama her komut için nasıl ENTER tuşuna basabilirim?
Luis Alvarado

Buldum. Tırnaklardan önce $ $ ve içinde C gibi çıkışlar olması. Bunun gibi -X şeyler $ 'kullanıcıları göster \ n'
Luis Alvarado

@CYREX: -pbirden fazla pencere varsa gereklidir (veya en azından iyi bir fikir). “Enter” a basmak için, yaptığım gibi bağımsız değişkene bir satırsonu ekleyin (yani tırnak içine).
Gilles 'SO- kötü olmayı bırak
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.