ฉันจะเริ่มต้นเซสชันหลายหน้าจอโดยอัตโนมัติได้อย่างไร


21

ฉันกำลังพยายามสร้างคำสั่งที่เรียกใช้screenสร้างสี่เซสชันที่มีชื่อแตกต่างกันและเรียกใช้คำสั่งต่าง ๆ สี่คำ

ฉันรู้วิธีการทำสิ่งนี้ด้วยตนเอง:

1. screen
2. ./command1 args
3. CTRL-A :sessionname Session 1
4. CTRL-A C
5. (GOTO 2)

ฉันสามารถทำได้ด้วยสคริปต์ทุบตีหรืออะไรบางอย่าง? ฉันจะทำอย่างไร

คำตอบ:


15

screen -dmS "$SESSION_NAME" "$COMMAND" "$ARGUMENTS"จะวางไข่หน้าจอที่ทำงาน$COMMANDในพื้นหลัง

คุณสามารถดูเซสชันที่ใช้งานด้วยscreen -lsและใส่screen -r "$SESSION_NAME"ใหม่ได้

screen -wipeการประชุมตายจะถูกฆ่าตายด้วย


มันทำงานเสร็จแล้ว!
ฮิวจ์

1
คำสั่งนี้สร้างเซสชันหน้าจอใหม่สำหรับแต่ละคำสั่ง ไม่สามารถใช้สร้างเซสชันหน้าจอเดียวที่มีหนึ่งหน้าต่างสำหรับแต่ละคำสั่ง (เป็นขั้นตอนแบบแมนนวลในคำถามที่ต้องทำ) ดังนั้นจึงไม่ตอบคำถามและ.screenrcคำตอบด้านล่างควรได้รับการยอมรับแทน
Tey '27

multi-windows-one-session จริงหรือเปล่าถ้าสิ่งที่คุณทำคือต้องการให้บางสิ่งบางอย่างทำงานในพื้นหลังอย่างถูก?
LawrenceC

29

หากต้องการเริ่มต้นหลายเซสชันโดยอัตโนมัติให้ตั้งค่า.screenrcไฟล์ซึ่งเป็นไฟล์กำหนดค่าสำหรับหน้าจอ ในนั้นคุณสามารถสร้างเซสชันเริ่มโปรแกรมเปลี่ยน dir ทำงาน ฯลฯ ฉันใช้มันเพื่อเริ่มต้นเซสชั่นหน้าจอของฉัน

ตัวอย่างแบบง่ายสำหรับไฟล์. screenrc:

# don't display the copyright page
startup_message off

# increase scrollback buffer size
defscrollback 10000

# create windows
screen -t TODO vim TODO.txt
chdir src
screen -t coding vim main.c
screen -t run 

screenคำสั่งดังกล่าวในแต่ละสร้างเซสชั่นหน้าจอเดียว -tตั้งชื่อของเซสชั่น; ส่วนที่เหลือของบรรทัดคือคำสั่งให้เรียกใช้และพารามิเตอร์

ดังนั้นscreenบรรทัดแรกและบรรทัดที่สองเริ่มเซสชันและเปิดvimภายใน คนที่สามเพิ่งเริ่มเซสชั่นและทำให้คุณพรอมต์ chdirเปลี่ยนไดเร็กทอรีการทำงานสำหรับเซสชันที่ตามมาทั้งหมด

หากคุณต้องการที่จะมีหลาย.screenrcไฟล์เพียงแค่ชื่อพวกเขาในแบบที่คุณต้องการใด ๆ screen -c myscreenrcและเลือกหนึ่งที่มี


5

คุณสามารถใช้ตัวเลือก d, m, S ร่วมกัน:

screen -Sdm s1
screen -Sdm s2
screen -Sdm s3

S: เพื่อสร้างหน้าจอ

d: แยกออกจากหน้าจอ

m: เพื่อบังคับใช้การสร้างหน้าจอโดยไม่คำนึงว่าหน้าจอถูกเรียกจากภายในหน้าจออื่นหรือไม่


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