การเริ่มต้นโปรแกรม Windows GUI ใน Windows ผ่าน Cygwin sshd จากไคลเอ็นต์ ssh


10

ฉันต้องการ ssh ลงในกล่อง Windows ของฉันที่ใช้ Cygwin sshd และเรียกใช้แอปพลิเคชัน Windows GUI ในกล่อง Windows นั้น ฉันไม่ต้องการส่งต่อ X

เช่นจากเทอร์มินัลเซิร์ฟเวอร์อูบุนตูฉันใช้ ssh ในวินโดว์ที่กำลังรัน sshd จากนั้นจึงเรียกใช้ notepad.exe notepad.exe จะแสดงใน Windows ไม่ใช่ใน ubuntu-server ที่ไม่มี X windows

คำตอบ:


12

วิธีการที่เหมาะสมดูเหมือนจะมีปัญหาบางอย่าง:

http://cygwin.1069669.n5.nabble.com/Windows-GUI-programs-eg-notepad-start-but-are-invisible-after-ssh-login-td56256.html

http://cygwin.com/ml/cygwin/2007-10/msg00334.html

ติดตั้ง 'sshd' อีกครั้งโดยระบุแฟล็ก '-i' เป็น 'cygrunsrv' หรือแก้ไขบริการปัจจุบันภายใต้ "เครื่องมือการดูแลระบบ" -> "บริการ" และตรวจสอบ "อนุญาตให้บริการโต้ตอบกับเดสก์ท็อป" ในแท็บ "เข้าสู่ระบบ" ของบริการ "คุณสมบัติ".

ฉันก็เลยลองแฮ็ค ฉันสร้าง cygwin_screen.cmd และวางไว้ในโฟลเดอร์ Windows Startup

@echo off 
C:
chdir C:\cygwin\bin
bash --login -i "/home/username/bin/start_screen.sh"

start_screen.sh นั้นง่ายและมันจะทำให้แน่ใจว่าเรามีหน้าจอที่จะแนบ

#!/bin/bash
screen -dmS "my_screen"

ตอนนี้ฉันสามารถล็อกอินจากระยะไกลไปยัง Windows จากไคลเอนต์ ssh และแนบไปกับหน้าจอนั้นเมื่อฉันต้องการเรียกใช้แอปพลิเคชัน Windows GUI

$screen -d -r my_screen

$notepad.exe
$cygstart my_doc.doc

วิธีนี้ใช้ได้ผลสำหรับฉัน แต่เมื่อฉันถอดออกอีกครั้งกระบวนการหน้าจอไคลเอ็นต์จะหยุดทำงาน ฉันต้อง ctrl-z ออกมาและฆ่ากระบวนการ การสร้าง daemon ในบริบทหนึ่ง (บนกล่อง windows) และการเชื่อมต่อจากที่อื่น (เข้าสู่ระบบ ssh) ดูเหมือนว่าจะสร้างปัญหานี้ การสร้างและการแนบจากการเชื่อมต่อ ssh ของฉันไม่ทำให้เกิดความขัดแย้ง
Tim Rupe


0

โซลูชันของฉันคล้ายกับ Win Myo Htet ยกเว้นว่าจะใช้ tmux ซึ่งมีความยืดหยุ่นมากกว่า

  1. เริ่ม tmux บนเทอร์มินัล Cygwin

    cygwin-host$ tmux

  2. ใช้ ssh เพื่อรันคำสั่งแบบรีโมตโฮสต์ในเซสชัน tmux

    other-host$ ssh cygwin-host tmux new-window notepad

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.