ฉันคัดลอกตัวอย่างของ Bash ไปยังพื้นหลังคำสั่ง ssh ที่ดำเนินการจากระยะไกล:
ssh user@remote <<CMD
some process <&- >log 2>error &
CMD
อะไร<&-
ทำอย่างไร
ฉันเดาว่ามันเหมือนกับ< /dev/null
ความเข้าใจต่อไปของฉันอยู่ที่สามอธิบายไฟล์หลัก ( stdin
, stdout
, stderr
) จะต้องมีการปิดเพื่อป้องกัน:
- งานที่อยู่เบื้องหลังและออกจากสคริปต์ - ขัดแย้งกันอย่างไร?
- เมื่อปิดเทอร์มินัลกระบวนการทั้งหมดที่ยอมรับ stdin จากเทอร์มินัลจะปิด?
ssh -nNT user@remote 'command'
จะสร้างเซสชันที่ไม่ใช่แบบโต้ตอบ SSH ผนวก&
พื้นหลังมันย่อหน้าnohup
ไปcommand
เพื่อให้มันทำงานถ้าตายเชื่อมต่อของคุณ
man ssh
แนะนำว่า -N ปิดการใช้งานคำสั่งระยะไกลทั้งหมดและการทดสอบอย่างรวดเร็วรองรับสิ่งนั้น