เปิด“ Terminals” หลายรายการโดยไม่มี GUI (startx)


13

ฉันไม่ทราบว่าชื่อเป็นคำอธิบายตัวเองหรือไม่ แต่ฉันต้องการเปิดเทอร์มินัลหลาย (สองอันในตอนนี้จะเพียงพอ) โดยไม่ต้องเริ่มเดสก์ท็อป

ฉันต้องการให้สคริปต์ PHP ทำงานเต็มเวลาและยังสามารถใช้เทอร์มินัล Raspi ของฉันได้เหมือนเดิมเมื่อฉันเริ่ม Raspi กับ Raspbian


คุณ ssh หรือเชื่อมต่อโดยตรงกับ pi ของคุณหรือไม่
SteveIrwin

สวัสดีสิ่งที่คุณอาจต้องการสามารถให้บริการโดย dvtm brain-dump.org/projects/dvtm
cgte

คำตอบ:


8

เพียงใช้ Alt + F1-F12 คุณจึงสามารถมีแท็บคอนโซลได้ 12 แท็บโดยไม่ต้องเริ่ม GUI


นี้เป็นจริงตัวเลือกที่ฉันกำลังใช้ :)
pasadinhas

1
สิ่งนี้ใช้ไม่ได้กับ Raspbian ไม่มีล็อกอินสำหรับ tty อื่น ๆ
AndreKR

9

หากคุณอยู่บนคอนโซล (แป้นพิมพ์และหน้าจอที่เชื่อมต่อ) คุณควรจะสามารถใช้ระบบคอนโซลเสมือนของ Linux เพื่อสลับระหว่างเทอร์มินัลหลายเครื่องโดยใช้ (ctrl-) alt-F1 ถึง F12 และอื่น ๆ ด้วย shift

จำนวนของขั้วการกำหนดค่าและจำนวนของพวกเขามีGettyกระบวนการ (ที่ขอให้คุณสำหรับการเข้าสู่ระบบและรหัสผ่าน) ขึ้นอยู่กับการกำหนดค่า


2
1 เพราะเมื่อเชื่อมต่อโดยตรงกับเครื่องนี้เป็นวิธีที่ "มาตรฐาน" ที่จะได้รับการเข้าสู่ระบบอื่นและไม่จำเป็นต้องมีการติดตั้ง / จอ tmux ..
Kiirani

7

ดียิ่งขึ้นกว่าscreenคือ tmux(ในความคิดของฉัน) sudo apt-get install tmuxคุณสามารถติดตั้งผ่านทาง ยังตรวจสอบ manpage man tmuxด้วย

คุณสามารถเริ่มได้โดยพิมพ์tmuxที่คอนโซลตัวใดตัวหนึ่งของคุณ (ดูคำตอบของ XTL)

นี่คือคำสั่งที่สำคัญที่สุด ( C-b dหมายถึง: กดควบคุมและ B ในเวลาเดียวกันจากนั้นกด D):

  • C-b d ถอดเซสชัน
  • tmux attach บนเชลล์เพื่อแนบเซสชันที่กำลังรันอีกครั้ง
  • C-b " แยกเฟรมปัจจุบันในแนวนอน (เริ่มเชลล์ใหม่)
  • C-b % แยกเฟรมปัจจุบันตามแนวตั้ง (เริ่มเชลล์ใหม่)
  • C-b arrow (up, down, left, right) นำทางระหว่างหน้าต่างในกรอบปัจจุบัน
  • C-b c เฟรมใหม่ (เริ่มเชลล์ใหม่)
  • C-b n เฟรมถัดไป
  • C-b l เฟรมสุดท้าย
  • C-b bส่งC-bไปยังแอปพลิเคชันที่ทำงานอยู่

ผู้สนับสนุนที่แข็งแกร่งสำหรับ tmux ที่นี่เช่นกัน การกำหนดค่าบรรทัดสถานะนั้นง่ายกว่าและจัดการได้ดีกว่า
codey

1
ควรสังเกตว่า tmux ไม่ได้มีพฤติกรรมเช่นเดียวกับหน้าจอเกี่ยวกับการแนบเซสชันกับ VT หลายตัว ("หน้าจอ -x")
Kiirani

3

คุณสามารถทำได้ด้วยหน้าจอ ด้วยหน้าจอคุณสามารถแยกออกจากเซสชันหน้าจอออกจากระบบเข้าสู่ระบบจากนั้นกลับไปที่หน้าจอเซสชันของคุณโดยไม่สูญเสียอะไรเลย โปรแกรมจะทำงานต่อไปและเอาต์พุตทั้งหมดจะยังคงปรากฏบนหน้าจอเทอร์มินัลที่คุณตัดการเชื่อมต่อ

ลิงค์เชื่อมโยงไปยังบทช่วยสอนบนหน้าจอ:

http://www.rackaid.com/resources/linux-screen-tutorial-and-how-to/

http://magazine.redhat.com/2007/09/27/a-guide-to-gnu-screen/

ลิงก์ไปยังเธรดที่มีเคล็ดลับ. screenrc ที่มีประโยชน์:

https://bbs.archlinux.org/viewtopic.php?id=55618

บทช่วยสอนเฉพาะของ Raspberry Pi:

http://raspi.tv/2012/using-screen-with-raspberry-pi-to-avoid-leaving-ssh-sessions-open


3
  1. หากสคริปต์ php ที่คุณต้องการเรียกใช้ไม่ทำงานกับผู้ใช้หรือต้องการอินพุต

    คุณสามารถใช้&คำสั่งที่ส่งสคริปต์ไปยังพื้นหลัง

    นี่คือตัวอย่าง

    pi@raspberrypi ~ $php code1 &
    

    นี่จะส่งสคริปต์ไปยังพื้นหลังที่มันจะทำงานต่อไป

  2. หากคุณ ssh เข้าสู่เทอร์มินัลคุณสามารถ ssh ในผู้ใช้เดียวกันสองครั้ง

  3. หากคุณต้องการเปิดเทอร์มินัลหลายเครื่องจากเซสชัน ssh

    คุณควรดูที่หน้าจอหรือดีกว่าติดตั้งbyobuซึ่งเป็นเสื้อคลุมรอบ ๆ หน้าจอ

    byobu เป็น wrapper ที่ช่วยให้สามารถเปิดหน้าจอใหม่ได้อย่างง่ายดายด้วยฟังก์ชั่นคีย์อย่างง่ายแทนการใช้คีย์ผสมจาก ctrl-a นอกจากนี้ยังแสดงบรรทัดสถานะพร้อมเทอร์มินัลเสมือนที่เปิดซึ่งสามารถตั้งชื่อได้

    อีกคุณสมบัติที่ดีคือความจริงที่ว่าหน้าจอทั้งหมดของคุณสามารถอยู่ได้ในขณะที่การเชื่อมต่อ ssh ของคุณถูกตัดการเชื่อมต่อ คุณเพียงแค่เชื่อมต่ออีกครั้งผ่าน ssh และโทรหา byobu และทุกอย่างเป็นเหมือนก่อนหน้านี้

หวังว่ามันจะช่วย


2

เพื่อความสมบูรณ์อีกทางเลือกหนึ่งคือการใช้byobu มันเป็นชั้นสะดวกด้านบนของหน้าจอ GNU มันให้ค่าเริ่มต้นที่ดีและฉันใช้งานง่ายกว่า ฉันใช้มันกับ Rapsberry Pi ของฉันเป็นการส่วนตัวและใช้งานได้ดี หากต้องการติดตั้งเพียงพิมพ์:

$ sudo apt-get install byobu

เมื่อติดตั้งแล้วให้กำหนดค่าผ่าน:

$ byobu-config

คุณสามารถเลือกที่จะเริ่มโดยอัตโนมัติเมื่อเข้าสู่ระบบและสลับแอปเพล็ตแจ้งสถานะ ( uptime, load, date ... )

ป้อนคำอธิบายรูปภาพที่นี่

ในฐานะที่เป็นบันทึกด้านข้างคอนโซลเสมือนชนิดนี้ยังมีประโยชน์สำหรับการแชร์อินพุต / เอาต์พุตคอนโซลเดียวกันระหว่างผู้ใช้ที่แตกต่างกันบนเครื่องที่แตกต่างกัน (คุณสามารถเรียกมันว่าการแชร์หน้าจอโหมดข้อความ )


ฉันลองโดยวันก่อนและไม่มีความสุข การควบคุมผ่านปุ่มฟังก์ชั่นนั้นไม่สม่ำเสมอ ไม่ได้ทำงานบน OS X แต่ก็มีปัญหาเมื่ออยู่ภายใต้ Debian ฉันจะติดกับ tmux และคำสั่งของมัน ปุ่มฟังก์ชั่นยังชนกับ mc (ผู้บัญชาการเที่ยงคืน)
Arne

สำหรับคีย์ฟังก์ชันขัดแย้งกับmcคุณสามารถเปลี่ยนเป็น byobu (คุณสามารถเลือกระหว่างสองโหมดที่แตกต่างกันได้อย่างง่ายดายผ่านbyobu-config)
Laurent Grégoire

2

เนื่องจากความต้องการเดิมของคุณคือการเปิดสคริปต์ PHP nohupในพื้นหลังคุณสามารถใช้คำสั่ง ตัวอย่าง:

$ nohup php myscript.php &

เมื่อเริ่มต้นคำสั่งที่ระบุเป็นอาร์กิวเมนต์บรรทัดคำสั่งที่nohupจะดำเนินการในพื้นหลังและอินพุต / เอาต์พุตของมันจะถูกยกเลิกการเชื่อมโยงจาก terminal ที่เริ่มต้นมันเพื่อป้องกันSIGHUPสัญญาณ (ดังนั้นnohupชื่อ) ที่จะส่งไปยังกระบวนการพื้นหลังเมื่อ คุณออกจากคอนโซลเริ่มต้น (สัญญาณมักทำให้โปรแกรมออกจาก) เอาท์พุทจะถูกเปลี่ยนเส้นทางไปยังไฟล์ (ค่าเริ่มต้นnohup.out)

man nohupสำหรับข้อมูลเพิ่มเติม:

เพื่อให้ได้คำตอบที่ดีและสมบูรณ์ยิ่งขึ้นคุณอาจต้องการ"daemonize"โปรแกรมของคุณอย่างเต็มที่ คุณอาจพบแหล่งข้อมูลบนเว็บซึ่งอธิบายวิธีการใช้งานสคริปต์ PHP


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