วิธีปกติในการเชื่อมต่อกับเซิร์ฟเวอร์ SSH ssh username@ip_address
คือ แต่ผู้ใช้อาจต้องการเรียกใช้โปรแกรมบนเครื่องระยะไกลเท่านั้น ssh username@ip_address <program_name>
ดังนั้นชื่อโปรแกรมดังต่อไปนี้หลังจากอาร์กิวเมนต์ปกติซึ่งเป็น ตัวอย่างเช่นssh username@ip_address ls
. อาร์กิวเมนต์นั่นคือดียกเว้นสำหรับโปรแกรมโต้ตอบ (ที่ยังยอมรับการป้อนข้อมูลของผู้ใช้เช่นเดียวกับการส่งออก) top
เช่น ผลลัพธ์คือ
ไม่ได้ตั้งค่าตัวแปรสภาพแวดล้อม TERM
ซึ่งหมายความว่าไม่มีเทอร์มินัล (หลอก) ติดอยู่ระหว่างโปรแกรม sshd และโปรแกรมยอดนิยม การแก้ปัญหาคือการเพิ่มการโต้แย้งที่คำสั่งทั้งตอนนี้กลายเป็น-t
ssh -t username@ip_address top
คำถามของฉันคือทำไมไม่สามารถใช้ sshd เป็นค่าเริ่มต้นใช้เทอร์มินัลหลอกเพื่อสื่อสารกับโปรแกรมที่ไม่ต้องมีการโต้ตอบดังนั้นจึงไม่จำเป็นต้องเพิ่ม-t
อาร์กิวเมนต์สำหรับโปรแกรมเชิงโต้ตอบ
RequestTTY yes
(หรือforce
) ในการกำหนดค่าของคุณ
top
สามารถทำงานในโหมดแบทช์