Câu trả lời:
Bắt đầu phiên màn hình được đặt tên ( -S
) với cửa sổ có tên ( -t
) thích ứng với kích thước đầu cuối ( -A
) ở chế độ tách rời ( -d -m
):
screen -S mySessionName -t myWinName0 -A -d -m
Bắt đầu một cửa sổ có tên khác ( -t
) trong cùng một phiên màn hình ( -S
):
screen -S mySessionName -X screen -t myWinName2
Nhồi một vài lệnh ( -X stuff $'cmds'
) vào cửa sổ có tên đầu tiên ( -p
) trong phiên ( -S
):
screen -S mySessionName -p myWinName0 -X stuff $'echo myWinName0\necho cmd1\necho cmd2\n'
Nhét một vài lệnh ( -X stuff $'cmds'
) vào cửa sổ có tên thứ hai ( -p
) trong phiên ( -S
):
screen -S mySessionName -p myWinName1 -X stuff $'echo myWinName1\necho cmd1\necho cmd2\n'
Liệt kê các phiên màn hình và gắn lại để xem điều gì đã xảy ra:
screen -ls
screen -r mySessionName
Lưu ý: Linefeed ( \n
) mô phỏng cách nhấn Enter. Bạn cũng có thể sử dụng dấu chấm phẩy để phân tách các lệnh.
Màn hình bên trong:
:screen newcmd
để chạynewcmd
Ở ngoài:
screen -X testen "screen newcmd"
Đã thử cách tiếp cận ở trên, nhưng lệnh thứ hai đã không thực hiện trên cửa sổ thứ hai. Tôi hơi điều chỉnh ví dụ bằng cách sử dụng số cửa sổ, thay vì tên cửa sổ:
tạo phiên
screen -S mySessionName -t 0 -A -d -m
tạo cửa sổ thứ hai
screen -S mySessionName -X screen -t 1
gửi lệnh đến cửa sổ đầu tiên
screen -S mySessionName -p 0 -X stuff $'echo myWinName0\necho cmd1\necho cmd2\n'
gửi lệnh đến cửa sổ thứ hai
screen -S mySessionName -p 1 -X stuff $'echo myWinName0\necho cmd1\necho cmd2\n'
Bây giờ hãy kiểm tra xem lệnh đã được chạy trên cửa sổ đầu tiên chưa
screen -R mySessionName -p 0
Bây giờ hãy kiểm tra xem lệnh đã được chạy trên cửa sổ thứ hai chưa
screen -R mySessionName -p 1
Đã thử nghiệm với Màn hình 4,00,03 (CENTOS 6.3 x64).
Bạn có thể thiết lập một .screenrc thay thế thông qua -c
đối số. Trong screenrc mới này, bạn có thể thiết lập nhiều lệnh để bắt đầu khi phiên màn hình được khởi tạo.
Khi kết thúc .screenrc thay thế này, hãy đặt các lệnh sau:
screen 1 cmd1 args
screen 2 cmd2 args
Bạn không cần thiết lập tệp cấu hình thay thế nếu bạn chỉ có kế hoạch chạy một loại phiên màn hình và các lệnh mặc định luôn chạy tốt.
screen -S sessionName -t windowName1 -Adm <command> && screen -S sessionName -X screen -t windowName2 -Adm <command2>