วิธีปิด tty


14

ฉันเปิดหลาย ttys แล้วและฉันไม่ทราบว่าจะใช้คีย์ผสมเพื่อปิด tty ฉันใช้ Arch Linux


2
คุณไม่ได้เปิดพวกเขาพวกเขาเปิดอยู่ คุณเพิ่งเปลี่ยน VT exitถ้าคุณต้องการที่จะออกจากระบบจากหนึ่งของพวกเขาใช้ หากคุณไม่ได้เข้าสู่ระบบไม่ต้องกังวล มันอยู่ที่นั่นมาก่อนคุณแค่ไม่ได้มองมัน
goldilocks

1
@goldilocks, VT สามารถจัดสรรและปิดแบบไดนามิกได้ คนแรกจะถูกจัดสรรเสมอเมื่อคอนโซลอยู่ในนั้นinitและ X มักจะจัดสรรคนต่อไป แต่คุณสามารถจัดสรรมากขึ้น การเปิด/dev/ttyxอุปกรณ์ก็เพียงพอที่จะจัดสรรได้
Stéphane Chazelas

@StephaneChazelas: ยุติธรรมเพียงพอ ฉันเพิ่งอนุมานจาก "การใช้คีย์ผสม" ที่จริงแล้ว ngwdaniel ไม่ได้เริ่มต้นอะไรที่ init ไม่ได้กลับกลายมาแล้ว ถ้าเป็นเช่นนั้นไม่จำเป็นต้องปิดสิ่งเหล่านั้น (และเมื่อคุณชี้ให้เห็นในคำตอบของคุณ
goldilocks

คุณหมายถึงลดจำนวน tty ที่มีอยู่หรือไม่
เดซี่

@goldilocks ขอบคุณนี่คือคำตอบที่ฉันกำลังมองหา ฉันเป็นผู้เริ่มต้นที่งี่เง่าและฉันคิดว่าเป็นฉันที่เปิด ttys โดย <Alt> + <F2> เป็นต้น
ngwdaniel

คำตอบ:


10

"ปิด" TTY

  • หากsystemdไม่ใช่initการใช้งานสิ่งนี้จะไม่ช่วยคุณ
  • sysvinitจะไม่ได้รับการสนับสนุนโดยArch ลินุกซ์

systemdของsystemctlใช้ในการควบคุมทั้งหมดservice unitsในระบบ man systemd.unitต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการอ้างอิงมัน การหยุดgettyให้บริการตามที่ต้องการttyจะเป็นการปฏิบัติงานที่เป็นปัญหา ด้านล่างนี้เป็นคำสั่งเพื่อดำเนินการนี้และฉันได้เพิ่มการทดสอบเพื่อให้คุณสามารถยืนยันผลลัพธ์ได้

# systemctl stop getty@ttyX.service

  • แทนที่Xด้วยttyหมายเลขที่คุณต้องการปิด
    • หาก[F4]ถูกใช้ในการสลับไปแล้วบริการเป็นชื่อttygetty@tty4.service
  • ขั้นตอนนี้จะปิดการใช้งาน / ttyลูกค้าวิ่งมาจากที่ระบุไว้

ทดสอบ

  1. สลับไปtty4และป้อนของคุณและ usernamepassword
    • <CTRL>+<ALT>+[F4]
  2. เปิดตัวแก้ไขข้อความที่คุณชื่นชอบ
    • vim foo.bar
  3. เปลี่ยนกลับเป็นอะไรtty1ก็ตามที่ttyคุณอยู่
    • <CTRL>+<ALT>+[F1]
  4. เปิดหน้าต่างเทอร์มินัลและตรวจสอบว่าvimกำลังทำงานอยู่หรือไม่
    • pgrep vim
      • pgrepส่งคืนหมายเลขกระบวนการสัญญาณของแอปพลิเคชันที่ระบุ หมายเลขจำนวนมากจะถูกส่งคืนหากมีหลายอินสแตนซ์ของแอปพลิเคชันเดียวกัน
        • (หากมีหน้าต่างเทอร์มินัลสี่หน้าต่างที่เปิดอยู่จากนั้นpgrepจะแสดงผลหมายเลขกระบวนการสี่)
  5. เป็นรากหยุดgettyบริการtty4
    • # systemctl stop getty@tty4.service
  6. ตรวจสอบอีกครั้งหากvimยังคงเปิดใช้งานอยู่ในtty4ตำแหน่งที่เปิดและแก้ไขfoo.bar
    • pgrep vim (หากไม่มีเอาต์พุต / เอาต์พุตน้อยกว่าในขั้นตอนที่ 4 แสดงว่าไม่มีกระบวนการ)
  7. ตรวจสอบสถานะของอีกครั้งgetty@.serviceสำหรับtty4
    • systemctl status getty@tty4.service | grep -i "Active"
      • การส่งออกท่อไปยังgrep -i "Active"จะส่งออกเฉพาะบรรทัดที่จำเป็นที่คุณจะต้องสังเกตเพื่อยืนยันว่าgettyถูกปิดการใช้งาน
        • Active: inactive (dead)

คุณสามารถใช้whoคำสั่งเพื่อแสดงรายการผู้ใช้ที่ล็อกอินและหมายเลข tty
Djolo

5

ฉันเชื่อว่ามันเป็นdeallocvtคำสั่งที่คุณกำลังมองหา

ก่อนอื่นตรวจสอบให้แน่ใจว่าไม่ได้ใช้ VT อีกต่อไป ตัวอย่างเช่นหากมีการgettyเริ่มต้นด้วยrespawningโดยinitบนคอนโซลนั้นไม่มีจุดพยายามยกเลิกการจัดสรรมันคุณจะต้องลบ tty นั้นออกจากinittabครั้งแรกและบอกinitให้โหลดการกำหนดค่าใหม่ หากมีเปลือกให้ออกจากเปลือก ฯลฯ

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