如何在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
相关产品推荐
相关产品推荐

