Tôi đã sao chép một đoạn của Bash để làm nền một lệnh ssh được thực thi từ xa:
ssh user@remote <<CMD
some process <&- >log 2>error &
CMD
Không gì <&-
làm gì?
Tôi đoán là nó giống như< /dev/null
Hiểu biết tiếp theo của tôi là ba mô tả tập tin chính ( stdin
, stdout
, stderr
) cần phải được đóng lại để ngăn chặn:
- Công việc đang được làm nền và kịch bản thoát - xung đột bằng cách nào đó?
- Khi thiết bị đầu cuối đóng cửa, tất cả các quy trình chấp nhận stdin từ thiết bị đầu cuối được đóng lại?
ssh -nNT user@remote 'command'
sẽ tạo một phiên SSH không tương tác. Nối &
đến nền nó, hãy thêm nohup
vào command
để giữ cho nó chạy nếu chết kết nối của bạn.
man ssh
đề xuất rằng -N không cho phép chạy hoàn toàn một lệnh từ xa và kiểm tra nhanh hỗ trợ điều đó.