Làm thế nào để đóng một tty


14

Tôi đã mở một vài tty và tôi không biết tổ hợp phím nào được sử dụng để đóng một tty. Tôi đang sử dụng Arch Linux.


2
Bạn đã không mở chúng, chúng mở. Bạn vừa đổi VT. Nếu bạn muốn đăng xuất khỏi một trong số chúng, hãy sử dụng exit. Nếu bạn chưa đăng nhập, đừng lo lắng. Nó đã ở đó trước đó, chỉ là bạn không nhìn vào nó.
goldilocks

1
@goldilocks, VT có thể được phân bổ động và đóng. Cái đầu tiên luôn được phân bổ khi giao diện điều khiển nằm trên nó initvà X thường phân bổ những cái tiếp theo, nhưng bạn có thể phân bổ nhiều hơn. Mở /dev/ttyxthiết bị là đủ để phân bổ nó.
Stéphane Chazelas

@StephaneChazelas: Đủ công bằng. Tôi chỉ suy luận từ "sử dụng các tổ hợp phím" mà ngwdaniel thực sự không bắt đầu bất cứ điều gì mà init đã sinh ra. Nếu vậy, không cần phải đóng chúng (và như bạn đã chỉ ra trong câu trả lời của mình, dù sao thì điều đó cũng không dễ thực hiện).
goldilocks

Bạn có nghĩa là giảm số lượng tty có sẵn?
cúc

@goldilocks cảm ơn bạn, đây là câu trả lời tôi đang tìm kiếm. Tôi là một người mới bắt đầu ngớ ngẩn và tôi nghĩ rằng chính tôi là người đã mở các ttys bằng cách <Alt> + <F2> vv
ngwdaniel

Câu trả lời:


10

"Đóng cửa" một TTY

  • Nếu systemdkhông initđược sử dụng thì điều này sẽ không giúp bạn.
  • sysvinitkhông còn được hỗ trợ bởi Arch Linux

systemd's systemctlđược sử dụng để kiểm soát tất cả service unitscác hệ thống. Để tìm hiểu thêm về nó tham khảo man systemd.unit. Dừng gettydịch vụ theo mong muốn ttysẽ thực hiện nhiệm vụ được đề cập. Dưới đây là lệnh để thực hiện hành động này và tôi cũng đã thêm một bài kiểm tra để bạn có thể xác nhận kết quả.

# systemctl stop getty@ttyX.service

  • Thay thế Xbằng ttysố bạn muốn đóng
    • Nếu [F4] được sử dụng để chuyển sang ttythì dịch vụ được đặt tên getty@tty4.service.
  • Quy trình này cũng sẽ đóng tất cả các ứng dụng / máy khách được chạy từ chỉ định tty.

Kiểm tra

  1. Chuyển sang tty4và nhập của bạn usernamepassword.
    • <CTRL>+<ALT>+[F4]
  2. Khởi chạy trình soạn thảo văn bản yêu thích của bạn
    • vim foo.bar
  3. Chuyển về tty1hoặc bất cứ nơi nào ttybạn ban đầu
    • <CTRL>+<ALT>+[F1]
  4. Mở một cửa sổ đầu cuối và kiểm tra nếu vimđang chạy
    • pgrep vim
      • pgreptrả về số quá trình tín hiệu của ứng dụng được chỉ định. Nhiều số sẽ được trả về nếu có nhiều phiên bản của cùng một ứng dụng
        • (nếu có bốn cửa sổ đầu cuối mở thì pgrepsẽ xuất ra bốn số tiến trình)
  5. Như gốc dừng các gettydịch vụ chotty4
    • # systemctl stop getty@tty4.service
  6. Kiểm tra lại nếu vimvẫn còn hoạt động ở tty4nơi nó được mở và chỉnh sửafoo.bar
    • pgrep vim (nếu không có đầu ra / đầu ra ít hơn ở bước 4, thì không có quá trình)
  7. Kiểm tra tình trạng của getty@.servicechotty4
    • systemctl status getty@tty4.service | grep -i "Active"
      • Đường ống đầu ra grep -i "Active"sẽ chỉ xuất ra dòng yêu cầu mà bạn cần quan sát để xác nhận gettyđã bị vô hiệu hóa
        • Active: inactive (dead)

u có thể sử dụng wholệnh để liệt kê người dùng hiện đang đăng nhập và số tty.
Djolo

5

Tôi tin rằng đó là deallocvtlệnh bạn đang tìm kiếm.

Trước tiên hãy chắc chắn rằng VT không còn được sử dụng. Chẳng hạn, nếu gettybắt đầu với việc hồi sinh bằng initbàn điều khiển đó, sẽ không có điểm nào cố gắng giải quyết nó, bạn cần xóa tty đó khỏi inittablần đầu tiên và yêu initcầu tải lại cấu hình của nó. Nếu có vỏ, thoát khỏi vỏ, v.v.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.