推迟登录屏幕/登录字段的方法

推迟登录屏幕/登录字段的方法

我正在寻找一种方法来推迟启动时出现的登录屏幕,或者一种方法来使登录字段在一定时间内或脚本运行完成后不可用(我需要等待系统日志中出现特定行,或者我可以等待 70 秒)。该方法必须在带有 lightdm/Unity 的 Ubuntu 16.04 上运行。

它必须只推迟启动后的登录屏幕,而不是“锁定屏幕”。如果可能的话,它也应该在计算机从睡眠状态唤醒时使用,但这不是必需的。

我一直在搜索类似的问题,但只能找到与减少登录时间等相关的问题,所以如果已经有类似的问题,请原谅我。

答案1

不确定你为什么需要这样做,但既然有人问了

显示管理器lightdm提供了许多“钩子”来连接进程 - 尽管不幸的是,文档并不完整。在这种情况下,最有用的可能就是能够指定greeter-setup-script在启动欢迎程序时要运行的程序:

# greeter-setup-script = Script to run when starting a greeter (runs as root)

利用此功能,您可以执行以下操作:

  1. 在某处创建一个脚本,/usr/local/bin/greeter-setup-script例如

    #!/bin/sh
    
    /usr/bin/logger "starting greeter-setup-script"
    
    /bin/sleep 70
    
    /usr/bin/logger "stopping greeter-setup-script"
    

    记录器行仅用于验证 - 您可以根据需要省略它们;您还可以sleep用更复杂的命令替换该命令,例如 tailing 和 grepping syslog。使脚本可执行:

    sudo chmod +x /usr/local/bin/greeter-setup-script
    
  2. 在 lightdm 配置目录中创建自定义配置文件,例如/etc/lightdm/lightdm.conf.d/99-local-settings.conf,包含以下条目

    [SeatDefaults]
    greeter-setup-script = /usr/local/bin/greeter-setup-script
    

    如果您已经有编号的自定义文件或/etc/lightdm/lightdm.conf文件,则可以向其中添加条目。


当 lightdm 重新启动时,延迟应该在 /var/log/syslog 中可见,例如:

Aug 23 17:12:42 xenial-vm systemd[1]: Started Detect the available GPUs and deal with any system changes.
Aug 23 17:12:42 xenial-vm systemd[1]: Starting Light Display Manager...
Aug 23 17:12:43 xenial-vm systemd[1]: Started Light Display Manager.
Aug 23 17:12:44 xenial-vm root: starting greeter-setup-script
Aug 23 17:13:54 xenial-vm root: stopping greeter-setup-script
Aug 23 17:13:54 xenial-vm systemd[1]: Created slice User Slice of lightdm.

相关内容