คำถามติดแท็ก gnu-screen

GNU Screen เป็นแอปพลิเคชั่นซอฟต์แวร์ที่สามารถใช้เพื่อมัลติเพล็กซ์คอนโซลเสมือน

8
การใช้ปุ่มลูกศร ctrl กับ PuTTY และหน้าจอ
ฉันค้นหาและไม่สามารถหาวิธีแก้ปัญหานี้ได้ทุกที่ ฉันใช้ PuTTY จาก Windows เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ต่าง ๆ ที่ฉันใช้ bash และหน้าจอ ดูเหมือนว่าทุบตีทำงานได้ดีกับปุ่ม Ctrl - ลูกศรเพื่อข้ามคำต่อคำในบรรทัดคำสั่ง แต่ภายในหน้าจอมันไม่ทำงาน ไม่ได้อยู่ในหน้าจอ ctrl-left ส่ง "^ [OC และ ctrl-right คือ" ^ [OD "ภายในหน้าจอฉันได้รับ" ^ [[C "และ" ^ [[D "] ซึ่งปรากฏเป็นรหัสสำหรับ ปุ่มลูกศรซ้าย / ขวามีวิธีใดบ้างที่จะรับหน้าจอให้จดจำปุ่ม ctrl-arrow เมื่อใช้ PuTTY (FYI ฉันจำไม่ได้ว่ามีปัญหานี้เมื่อใช้ gnu-terminal ใน linux แทนที่จะเป็น PuTTY) UPDATE: ดูเหมือนว่า PuTTY เป็นปัญหาเนื่องจากไม่ได้ส่งรหัสหลบหนีที่จำเป็นสำหรับการทำงาน …
33 bash  gnu-screen  putty 

11
คุณสมบัติที่ซ่อนของ `หน้าจอ '
เนื่องจากฉันใช้คำสั่ง * nixscreenทั้งวันและฉันไม่พบใครเริ่มคำถามนี้ฉันคิดว่ามันควรจะเริ่มต้น คุณรู้ว่าการเจาะลึก: วิกิชุมชนหนึ่งคำตอบต่อคุณลักษณะหนึ่งอย่างเพื่อให้เราทุกคนสามารถลงคะแนนได้
31 gnu-screen 

6
สร้างหน้าจอและเรียกใช้คำสั่งโดยไม่ต้องแนบ
ฉันกำลังทำงานเกี่ยวกับการซ่อมบำรุงอัตโนมัติที่เกี่ยวข้องกับการเริ่มต้นและการหยุดสคริปต์ที่เรียกใช้ในเซสชันหน้าจอ วิธีการของฉันคือฆ่าเซสชันหน้าจอจากนั้นรีสตาร์ทและเรียกใช้คำสั่งจากภายในสคริปต์โดยใช้ความสามารถในการสร้างหน้าจอและส่งคำสั่งโดยไม่ต้องแนบหน้าจอ อย่างไรก็ตามฉันมีปัญหากับสิ่งนี้ screen -d -m -S screen_nameฉันสามารถสร้างหน้าจอได้อย่างถูกต้องโดยไม่ได้แนบใช้ อย่างไรก็ตามถ้าฉันใช้คำสั่งตาม: screen -S screen_name-X stuff "command 1"'echo -ne '\015''"command 2"'echo -ne '\015'' ด้วย echo -ne '\ 015' ที่ห่อด้วย backticks มากกว่าราคาเดียว มันคือการจำลองผู้ใช้กดปุ่ม Enter เป็นคำสั่งที่ฉันใช้จะย้ายไปยังไดเรกทอรีและรันสคริปต์อยู่ที่นั่น คำสั่งนี้ใช้งานได้ แต่ต่อเมื่อมีการแนบหน้าจอกับเมื่อมันถูกสร้างขึ้น ขณะที่ฉันพยายามทำให้กระบวนการสร้างหน้าจอโดยอัตโนมัติและเรียกใช้คำสั่งภายในนั้นฉันต้องการหลีกเลี่ยงการแนบและแยกออกจากสคริปต์ ฉันจะพยายามแนะนำการสร้างเชลล์สคริปต์ที่มีคำสั่งที่ฉันต้องดำเนินการภายในหน้าจอและแก้ไขตามผลลัพธ์ของฉัน มีวิธีการสร้างหน้าจอและเรียกใช้คำสั่งภายในหน้าจอในคำสั่งเดียวหรือไม่ต้องแนบกับหน้าจอหลังจากสร้าง แต่ก่อนดำเนินการคำสั่งหรือไม่ ขอบคุณล่วงหน้า. ** อัปเดต - หลังจากลองใช้คำแนะนำเพื่อวางคำสั่งที่ฉันต้องการเรียกใช้ภายในเชลล์สคริปต์ฉันสามารถสร้างหน้าจอและรันคำสั่งจากภายในหน้าจอได้สำเร็จ แต่ฉันได้รับพฤติกรรมที่เมื่อสคริปต์หยุดทำงาน หน้าจอปิดเช่นกัน นี่ไม่ควรเป็นปัญหาเพราะสคริปต์เป็นสคริปต์การบันทึกที่ควรหยุดด้วยความรู้ของผู้ดูแลระบบ sys หรือผ่านสคริปต์ที่ฉันพยายามพัฒนา แต่มันจะดีกว่าถ้ามีการตั้งค่าหน้าจอในลักษณะที่หน้าจอ ไม่หายไปหากสคริปต์หยุดทำงาน เป็นไปได้ไหมที่จะทำสิ่งนี้ให้สำเร็จ …
28 linux  gnu-screen 

3
ติดตั้งซ้ำหรือสร้างเซสชันหน้าจอที่ตั้งชื่อหรือไม่ (หรือเซสชันหน้าจอถาวร)
โดยทั่วไปฉันมีเซสชั่นหน้าจอระยะไกลซึ่งฉันต้องการกลับไปที่อัตโนมัติโดยอัตโนมัติ .. ขณะนี้ฉันกำลังทำสิ่งนี้โดยใช้คำสั่งต่อไปนี้ (เป็นที่คั่นหน้า iTerm หรือนามแฝง) ssh host -t screen -x thesessionname มันใช้งานได้ดี แต่ถ้าเซสชั่นตายด้วยเหตุผลใดก็ตามฉันต้องการที่จะได้รับการสร้างขึ้นใหม่เมื่อฉันเชื่อมต่อไป -Rธงscreenเป็นเกือบสมบูรณ์แบบ: ssh host -t screen -R -S thesessionname .. แต่ถ้ามีการเชื่อมต่อเซสชันแล้วเซสชันที่สองจะถูกสร้างขึ้น ( -Rดูง่ายๆสำหรับเซสชันเดี่ยวที่แยกออกมาครั้งแรกหากไม่พบจะสร้างเซสชันใหม่ขึ้นมา) มีวิธีในการทำให้-Rค่าสถานะค้นหาเซสชันที่แนบมาด้วยหรือไม่และสร้างใหม่หากthesessionnameไม่มีอยู่เท่านั้น หากสิ่งนี้ไม่สามารถทำได้อย่างง่ายดายฉันจะสร้างเซสชันหน้าจอใหม่โดยอัตโนมัติเมื่อมันตายได้อย่างไร บางทีสคริปต์ทำงานผ่าน cron ที่ค้นหาเซสชันที่มีชื่อสร้างมันไม่ควรมีอยู่?
27 gnu-screen 

5
มีวิธีทำให้เซสชัน“ หน้าจอ” อยู่รอดในการรีบูตหรือไม่
ฉันใช้ยูทิลิตีหน้าจอและต้องการที่จะรักษาเซสชั่นเมื่อเครื่องรีบูต หากไม่สามารถทำได้คุณสามารถแนะนำทางเลือกอื่น ๆ ให้กับScreenซึ่งจะช่วยรักษาเซสชันระหว่างการรีบูต ฉันใช้ Ubuntu Server 10.04 (Lucid Lynx) หากเป็นเช่นนั้น ฉันมีหลายครั้งที่เปิดผ่านหน้าจอ เมื่อเครื่องรีบูตเซสชันเหล่านั้นทั้งหมดหายไปและฉันต้องเปิดใหม่อีกครั้ง ฉันต้องการหาวิธีรักษาเซสชันของหน้าจอเหล่านั้น
25 gnu-screen 

6
ฆ่าหน้าจอ (แต่ไม่ใช่ทุกหน้าจอ)
ฉันมีหลายหน้าจอที่ทำงานบนเซิร์ฟเวอร์ Ubuntu ที่เริ่มต้นเป็น: screen -dmS screen1 cmd screen -dmS screen2 cmd etc... และฉันต้องฆ่าหน้าจอเดียว แต่ไม่ใช่ทั้งหมด คำสั่งที่ถูกต้องในการฆ่าหน้าจอใดหน้าจอหนึ่งด้วยชื่อของมันคืออะไร? ฉันอ่านหน้า man แล้วแต่ฉันไม่สามารถหาคำสั่งที่ฉันต้องการได้ นอกจากนี้ฉันต้องการเขียนคำสั่งนี้เป็นสคริปต์ทุบตีดังนั้นฉันจึงไม่สามารถscreen -r screen1กดCtrl+ Xตามปกติ
19 bash  gnu-screen  kill 

2
จะบอกให้หน้าจอ GNU เรียกใช้. bash_profile ในแต่ละหน้าต่างใหม่ได้อย่างไร
เมื่อเปิดหน้าต่างใหม่ในหน้าจอ GNU จะทำงานแต่ไม่.bashrc .bash_profileในการตั้งค่าของฉันผลลัพธ์นี้ทำให้ตัวแปรสภาพแวดล้อมบางอย่างไม่ได้รับการตั้งค่าอย่างถูกต้องในหน้าต่างนั้น ฉันจะบอกให้หน้าจอ GNU ทำงานตลอดเวลา.bash_profileแทนที่จะ.bashrcเปิดหน้าต่างใหม่ได้อย่างไร (โปรดอย่าบอกให้ฉันโทร.bash_profileจากฉัน.bashrc:)
18 gnu-screen 

3
ไม่สามารถแนบหน้าจอเซสชันอีกครั้งหลังจากการเชื่อมต่อ SSH หลุด
screen -dr controlฉันได้กลับคืนก่อนหน้านี้เซสชั่นหน้าจอยาวทำงานกับ อย่างไรก็ตามบางครั้งคำสั่งนี้จะไม่ติดกลับไปที่หน้าจอและแทนที่จะแขวนตลอดไป (10+ นาทีหลังจากที่ฉันยกเลิก) นี้จะเกิดขึ้นเมื่อการเชื่อมต่อ SSH Ctrl-A dจะลดลงโดยไม่คาดคิดและไม่ได้เมื่อหน้าจอถูกถอดออกอย่างถูกต้องกับ สวิตช์อื่น ๆ เช่นscreen -xหรือscreen -D -RRไม่ทำงาน โพสต์นี้แนะนำให้ฆ่า PTY ที่เก็บเซสชั่นหน้าจอซึ่งจะทำให้หน้าจอเสร็จสิ้นการยกเลิกการเชื่อมต่อ อย่างไรก็ตามมันก็แค่ฆ่าเชลล์ที่screen -dr controlถูกเรียก ตัวอย่างเช่น: $ ps -ef | grep control | grep -v grep nomad 7387 7109 0 13:05 pts/50 00:00:00 screen -dr control nomad 15299 1 0 Nov27 ? 00:13:47 …
16 ssh  gnu-screen 

6
จะเลื่อนกลับไปที่หน้าจอภายในเซสชัน ssh จาก OS X ได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ปิดให้บริการใน4 ปีที่แล้ว ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันทำต่อไปนี้: เปิด Terminal.app เปิดเซสชัน ssh ไปยังเซิร์ฟเวอร์ Linux ระยะไกล เปิดเซสชันหน้าจอบนเซิร์ฟเวอร์ เริ่มโปรแกรมที่มีการรายงานข้อผิดพลาดหลายบรรทัด ... ฉันจะเลื่อนขึ้นเพื่ออ่านได้อย่างไร และไม่การแก้ไขโปรแกรมไม่ใช่วิธีแก้ปัญหาสำหรับตอนนี้ ...

4
ฉันจะป้องกันหน้าจอ GNU จากการรีเซ็ตพรอมต์ของฉันได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับข้อบกพร่องของเซิร์ฟเวอร์ ปิดให้บริการใน4 ปีที่แล้ว เมื่อฉันเรียกใช้หน้าจอมันเปลี่ยนพรอมต์ของฉัน ฉันจะป้องกันพฤติกรรมนี้ได้อย่างไร ตัวอย่างเช่น: $ echo $PS1 \[\e]0;\h:Prod\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$ $ screen $ echo $PS1 [\u@\h \W]\$ น่าสนใจมันไม่ได้ทำในเครื่องอื่น เครื่องที่มีปัญหาคือ Redhat 4 update 4 พร้อม Screen version 4.00.02 (FAU) 5-Dec-03
13 linux  gnu-screen 

5
ตั้งค่าชื่อหน้าต่าง xterm (PuTTY) เมื่อใช้หน้าจอหรือไม่
ฉันพยายามที่screenจะตั้งxtermชื่อของฉัน ฉันมีการทำงานนอกscreenนี้ แต่screenเก็บชื่ออะไรไว้ในที่เมื่อฉันเริ่มมัน นี่คือของฉัน.bashrc: ฟังก์ชัน bash_prompt_command () { # ควรเก็บจำนวนอักขระของ $ PWD กี่ตัว pwdmaxlen ท้องถิ่น = 25 # ระบุว่ามีการตัดทอนโดย dir local trunc_symbol = ".. " local dir = $ {PWD ## * /} pwdmaxlen = $ (((pwdmaxlen <$ {# dir})? $ {# dir}: pwdmaxlen)) NEW_PWD = $ {PWD / # …
12 gnu-screen  putty 

3
การตั้งค่า $ TERM สำหรับหน้าจอ gnu
ดังนั้นฉันจึงรวบรวมหน้าจอที่มี 256 สีทำงานบน Konsole ในโหมดสี 256 หากหน้าจอเริ่มต้น TERM ถูกตั้งค่าเป็น "หน้าจอ" ถ้าฉันส่งออก TERM ไปที่ screen-256color ทุกอย่างทำงานได้อย่างสวยงาม ฉันมีสองคำถาม ข้อแรกคือเหตุผลที่หน้าจอตั้งค่า TERM เป็น "หน้าจอ" แทนที่จะเป็น "หน้าจอ 256 สี" เมื่อมันรองรับ อย่างที่สองคือถ้าฉันมีบรรทัดต่อไปนี้ในไฟล์. screenrc ของฉัน term screen-256color ทำไมหน้าจอยังไม่ได้ตั้งค่าระยะของฉันได้อย่างไร ข้อมูลเพิ่มเติม: ฉันกำลังใช้งานหน้าจอเวอร์ชัน 4.00.03jw4 (FAU) 2-May-06 บน Kubuntu Jaunty amd64
12 gnu-screen  term 

4
ฉันจะใช้ crontab เพื่อเริ่มเซสชันของหน้าจอได้อย่างไร
ฉันต้องการสร้างรายการ crontab เพื่อให้เริ่มต้นหน้าจอเริ่มต้นเซิร์ฟเวอร์เกมและแยกออก นี่เป็นในกรณีที่เซิร์ฟเวอร์รีบูตและฉันต้องการให้มันเริ่มต้นโดยอัตโนมัติสำหรับฉัน 0 0 0 0 0 (คำสั่ง) ควรทำงานเมื่อเริ่มต้น มันรันไฟล์เชลล์อยู่ที่ ~ / cube / server.sh

4
เรียกใช้หน้าจอ (GNU) จากสคริปต์
ฉันต้องการเปิดแอปพลิเคชั่นภายในเซสชันหน้าจอ แต่มาจากสคริปต์ หากไม่มีสคริปต์ฉันก็แค่เปิดหน้าจอแล้วเปิด N windows ด้วย crtl-ac และรันโปรแกรมในแต่ละหน้าต่าง ฉันพยายามต่อไปนี้ screen -d -m -S test screen -S test -X exec tail -f /var/log/messages screen -S test -X screen screen -S test -X exec tail -f /var/log/xinetd.log แต่เมื่อฉันแนบเซสชันหางไม่ทำงาน ถ้าฉันแนบเซสชันหลังจากนั้นscreen -d -m -S startupและเรียกใช้screen -S startup -X exec tail -f /var/log/messagesจากเทอร์มินัลอื่นมันใช้งานได้ ฉันพลาดอะไรไปหรือเปล่า? แก้ไขหลังจากตอบ …
11 gnu-screen 

1
.screenrc - หลายภูมิภาคเมื่อเปิดตัว
ฉันรู้ว่ามันเป็นไปได้ แต่ฉันไม่สามารถหาวิธีเปิดหน้าจอด้วยหน้าต่างเดียวในโหมดแบ่งเขตได้หรือไม่? เช่น: ฉันได้ตั้งค่าหน้าจอให้เปิดหลายหน้าต่างเมื่อเปิดตัว แต่ต้องการแบ่งหน้าต่าง 0 ออกเป็นสองภูมิภาคโดยมีแอปพลิเคชันทำงานอยู่ในแต่ละภูมิภาค
11 gnu-screen 

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