ฉันไม่ทราบว่าชื่อเป็นคำอธิบายตัวเองหรือไม่ แต่ฉันต้องการเปิดเทอร์มินัลหลาย (สองอันในตอนนี้จะเพียงพอ) โดยไม่ต้องเริ่มเดสก์ท็อป
ฉันต้องการให้สคริปต์ PHP ทำงานเต็มเวลาและยังสามารถใช้เทอร์มินัล Raspi ของฉันได้เหมือนเดิมเมื่อฉันเริ่ม Raspi กับ Raspbian
ฉันไม่ทราบว่าชื่อเป็นคำอธิบายตัวเองหรือไม่ แต่ฉันต้องการเปิดเทอร์มินัลหลาย (สองอันในตอนนี้จะเพียงพอ) โดยไม่ต้องเริ่มเดสก์ท็อป
ฉันต้องการให้สคริปต์ PHP ทำงานเต็มเวลาและยังสามารถใช้เทอร์มินัล Raspi ของฉันได้เหมือนเดิมเมื่อฉันเริ่ม Raspi กับ Raspbian
คำตอบ:
เพียงใช้ Alt + F1-F12 คุณจึงสามารถมีแท็บคอนโซลได้ 12 แท็บโดยไม่ต้องเริ่ม GUI
หากคุณอยู่บนคอนโซล (แป้นพิมพ์และหน้าจอที่เชื่อมต่อ) คุณควรจะสามารถใช้ระบบคอนโซลเสมือนของ Linux เพื่อสลับระหว่างเทอร์มินัลหลายเครื่องโดยใช้ (ctrl-) alt-F1 ถึง F12 และอื่น ๆ ด้วย shift
จำนวนของขั้วการกำหนดค่าและจำนวนของพวกเขามีGettyกระบวนการ (ที่ขอให้คุณสำหรับการเข้าสู่ระบบและรหัสผ่าน) ขึ้นอยู่กับการกำหนดค่า
ดียิ่งขึ้นกว่า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
ไปยังแอปพลิเคชันที่ทำงานอยู่คุณสามารถทำได้ด้วยหน้าจอ ด้วยหน้าจอคุณสามารถแยกออกจากเซสชันหน้าจอออกจากระบบเข้าสู่ระบบจากนั้นกลับไปที่หน้าจอเซสชันของคุณโดยไม่สูญเสียอะไรเลย โปรแกรมจะทำงานต่อไปและเอาต์พุตทั้งหมดจะยังคงปรากฏบนหน้าจอเทอร์มินัลที่คุณตัดการเชื่อมต่อ
ลิงค์เชื่อมโยงไปยังบทช่วยสอนบนหน้าจอ:
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
หากสคริปต์ php ที่คุณต้องการเรียกใช้ไม่ทำงานกับผู้ใช้หรือต้องการอินพุต
คุณสามารถใช้&
คำสั่งที่ส่งสคริปต์ไปยังพื้นหลัง
นี่คือตัวอย่าง
pi@raspberrypi ~ $php code1 &
นี่จะส่งสคริปต์ไปยังพื้นหลังที่มันจะทำงานต่อไป
หากคุณ ssh เข้าสู่เทอร์มินัลคุณสามารถ ssh ในผู้ใช้เดียวกันสองครั้ง
หากคุณต้องการเปิดเทอร์มินัลหลายเครื่องจากเซสชัน ssh
คุณควรดูที่หน้าจอหรือดีกว่าติดตั้งbyobu
ซึ่งเป็นเสื้อคลุมรอบ ๆ หน้าจอ
byobu เป็น wrapper ที่ช่วยให้สามารถเปิดหน้าจอใหม่ได้อย่างง่ายดายด้วยฟังก์ชั่นคีย์อย่างง่ายแทนการใช้คีย์ผสมจาก ctrl-a นอกจากนี้ยังแสดงบรรทัดสถานะพร้อมเทอร์มินัลเสมือนที่เปิดซึ่งสามารถตั้งชื่อได้
อีกคุณสมบัติที่ดีคือความจริงที่ว่าหน้าจอทั้งหมดของคุณสามารถอยู่ได้ในขณะที่การเชื่อมต่อ ssh ของคุณถูกตัดการเชื่อมต่อ คุณเพียงแค่เชื่อมต่ออีกครั้งผ่าน ssh และโทรหา byobu และทุกอย่างเป็นเหมือนก่อนหน้านี้
หวังว่ามันจะช่วย
เพื่อความสมบูรณ์อีกทางเลือกหนึ่งคือการใช้byobu มันเป็นชั้นสะดวกด้านบนของหน้าจอ GNU มันให้ค่าเริ่มต้นที่ดีและฉันใช้งานง่ายกว่า ฉันใช้มันกับ Rapsberry Pi ของฉันเป็นการส่วนตัวและใช้งานได้ดี หากต้องการติดตั้งเพียงพิมพ์:
$ sudo apt-get install byobu
เมื่อติดตั้งแล้วให้กำหนดค่าผ่าน:
$ byobu-config
คุณสามารถเลือกที่จะเริ่มโดยอัตโนมัติเมื่อเข้าสู่ระบบและสลับแอปเพล็ตแจ้งสถานะ ( uptime, load, date ... )
ในฐานะที่เป็นบันทึกด้านข้างคอนโซลเสมือนชนิดนี้ยังมีประโยชน์สำหรับการแชร์อินพุต / เอาต์พุตคอนโซลเดียวกันระหว่างผู้ใช้ที่แตกต่างกันบนเครื่องที่แตกต่างกัน (คุณสามารถเรียกมันว่าการแชร์หน้าจอโหมดข้อความ )
byobu-config
)
เนื่องจากความต้องการเดิมของคุณคือการเปิดสคริปต์ PHP nohup
ในพื้นหลังคุณสามารถใช้คำสั่ง ตัวอย่าง:
$ nohup php myscript.php &
เมื่อเริ่มต้นคำสั่งที่ระบุเป็นอาร์กิวเมนต์บรรทัดคำสั่งที่nohup
จะดำเนินการในพื้นหลังและอินพุต / เอาต์พุตของมันจะถูกยกเลิกการเชื่อมโยงจาก terminal ที่เริ่มต้นมันเพื่อป้องกันSIGHUP
สัญญาณ (ดังนั้นnohup
ชื่อ) ที่จะส่งไปยังกระบวนการพื้นหลังเมื่อ คุณออกจากคอนโซลเริ่มต้น (สัญญาณมักทำให้โปรแกรมออกจาก) เอาท์พุทจะถูกเปลี่ยนเส้นทางไปยังไฟล์ (ค่าเริ่มต้นnohup.out
)
man nohup
สำหรับข้อมูลเพิ่มเติม:
เพื่อให้ได้คำตอบที่ดีและสมบูรณ์ยิ่งขึ้นคุณอาจต้องการ"daemonize"โปรแกรมของคุณอย่างเต็มที่ คุณอาจพบแหล่งข้อมูลบนเว็บซึ่งอธิบายวิธีการใช้งานสคริปต์ PHP
disown
เพื่อป้องกันการหยุดทำงานของกระบวนการพื้นหลังที่เลือก