centos 7 默认启动6个tty进程(约12mb内存),可通过修改/etc/init/start-ttys.conf限制active_consoles数量(如改为/dev/tty[1]),并调整/etc/systemd/logind.conf中reservevt值,重启服务后生效。

tty 进程默认每个都占约 2MB 内存,6 个就是 12MB 左右——对低配服务器或容器化环境来说,这笔开销不值得。CentOS 7 默认启动 6 个虚拟终端(tty1–tty6),但绝大多数生产服务器只用 tty1(图形界面)或根本不用,其余纯属冗余。
修改 /etc/init/start-ttys.conf 限制启动数量
这是最直接、最稳妥的永久方案,适用于 systemd + upstart 混合启动机制的 CentOS 7(尤其最小化安装版)。该文件控制 init 启动多少个 getty 实例。
- 用
vim /etc/init/start-ttys.conf打开,找到env ACTIVE_CONSOLES=/dev/tty[1-6]这一行 - 把它改成
env ACTIVE_CONSOLES=/dev/tty[1-2](保留 2 个足够应急)或/dev/tty[1](只留 1 个) - 同时检查
env X_TTY=/dev/tty1是否存在且未被注释——它用于图形界面跳转,保持原样即可 - 保存后重启系统生效;不重启也可手动停掉多余的:运行
systemctl stop getty@tty{3..6}.service
调整 /etc/systemd/logind.conf 的 ReserveVT
这个配置影响的是 systemd-logind 管理的“预留 VT”数量,主要作用是防止用户切换到未启用的 tty 时触发新 getty 启动。它不直接减少已运行的 getty,但能避免意外激活。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
- 编辑
/etc/systemd/logind.conf,取消注释#ReserveVT=6行,改为ReserveVT=2 - 执行
systemctl restart systemd-logind生效 - 注意:此设置仅在
NAutoVTs=未显式覆盖时才起作用;若你同时改了NAutoVTs,优先级更高
临时关闭正在运行的 tty(慎用)
适合紧急清理非法登录或僵尸会话,但不能替代配置修改——下次 reboot 还会回来。
- 先用
w -sh查看活跃tty列表(排除当前终端) - 对目标
tty执行systemctl stop getty@<code>ttyX.service,例如systemctl stop getty@tty4.service - 不要用
kill -9直接杀 getty 进程:可能残留 pty、session 未清理,导致后续无法正常登录 - 验证是否释放:
ps aux | grep getty | grep -v grep,数量应与配置一致
/etc/securetty 只控制 root 登录权限,不关 tty 进程
常见误区:有人把 /etc/securetty 里只留 tty1 当作“关闭 tty”,其实它只是禁止 root 从其他 tty 登录,getty 进程照常运行、内存照占。
- 该文件不影响
systemd或upstart启动行为 - 它只在 PAM 认证阶段起作用,属于安全加固手段,不是资源优化手段
- 真要省内存,必须动启动配置或 service 单元,而不是改这个文件
/etc/init/start-ttys.conf 是第一落点,ReserveVT 是辅助防线。两者都设好后,ps aux | grep getty 应只看到你指定数量的进程——多一个都是配置没生效或服务没重启。别信“改完就立刻省内存”的说法,systemd 服务不 reload/restart,旧实例不会自动退出。










