You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在NixOS中覆盖getty@tty1.service的TTYVTDisallocate参数?

在NixOS中覆盖getty@tty1.service的TTYVTDisallocate属性

方法一:使用NixOS原生systemd服务配置(推荐)

NixOS提供了直接配置systemd服务的原生方式,无需手动创建drop-in文件,这是最贴合NixOS设计理念的做法,也能从根源避免权限问题。在/etc/nixos/configuration.nix中添加以下配置:

systemd.services."getty@tty1" = {
  serviceConfig = {
    TTYVTDisallocate = "no";
  };
};

执行nixos-rebuild switch应用配置后,NixOS会自动生成对应的systemd drop-in文件,全程无需手动处理权限或文件路径。

方法二:修复environment.etc的权限问题

如果你更倾向于模拟传统发行版的drop-in文件方式,需要确保environment.etc配置中正确设置目录和文件的权限——之前的权限拒绝错误通常是因为未指定getty@tty1.service.d目录的正确权限。修改configuration.nix如下:

environment.etc = {
  "systemd/system/getty@tty1.service.d/custom.conf".text = ''
    [Service]
    TTYVTDisallocate=no
  '';
  # 设置目录权限为root可读写执行,其他用户可读执行,符合systemd的要求
  "systemd/system/getty@tty1.service.d".mode = "0755";
};

保存配置后执行nixos-rebuild switch即可生效。这种方式本质是让NixOS帮你创建对应的drop-in文件,通过指定mode参数确保目录权限符合systemd的要求。

内容的提问来源于stack exchange,提问作者safsaf32

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 11:02:08