标签: getty

X11如何与内核交互/执行登录

据我了解,对于与 Linux 内核的基于文本的交互,一个名为init开始getty(或agetty)的程序连接到下面的一个 TTY 设备/dev并提示输入用户名。此后,login运行一个调用的程序,提示输入用户的密码,如果正确,则启动用户首选的外壳程序(例如bashcsh)。此时,bash 通过 TTY 设备与内核交互。

这个登录过程如何在 X11 上工作?X11 是否通过 TTY 与内核交互?

login x11 tty linux-kernel getty

15
推荐指数
1
解决办法
1980
查看次数

更改 tty 登录超时 - ArchLinux

默认情况下,当我在 tty 中登录我的 Arch linux 框时,在我输入用户名之后但在我输入密码之前会超时。

所以它是这样的

Login:  mylogin <enter>
Password:
(+ 60 seconds)
Login:
Run Code Online (Sandbox Code Playgroud)

如您所见,如果我不输入密码,它会回收提示——我希望它无限期地等待我的密码,而不是回收登录提示。

这可能吗?

似乎--timeout选择agetty将是我想要的。但是,我尝试在 getty 文件中添加此标志/usr/lib/systemd/system/(默认情况下不使用该选项),然后重新启动 - 它似乎没有任何效果。

linux login tty timeout getty

12
推荐指数
1
解决办法
1万
查看次数

getty 从命令行开始?

我的 inittab 中有一行如下所示:

# Put a getty on the serial port
ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100 # GENERIC_SERIAL
Run Code Online (Sandbox Code Playgroud)

如果我尝试从会话命令行执行类似的操作(这次是针对我拥有的 USB 串行适配器):

/sbin/getty -L ttyUSB0 115200 vt100
Run Code Online (Sandbox Code Playgroud)

我收到以下回复:

getty: setsid: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

我是否可以从我的会话启动进程并在 USB 串行适配器上显示一个串行?为什么这必须发生在 inittab 中?

getty

8
推荐指数
1
解决办法
8341
查看次数

串行控制台上没有登录提示

我已经将 USB 转串口线从 OS X 连接到运行 Arch Linux ARM的Banana Pi板,由 Lemaker 分发。连接本身运行良好 - 我在启动时看到所有启动消息,我可以进入 U-Boot 并发出命令等;我假设连接本身按预期工作。

但是,一旦引导序列完成并且应该提示我输入凭据,屏幕就会变为空白(清除以前的条目)并且不会出现登录提示。

谷歌搜索发现我应该:

  1. 在串行控制台上启用 getty: systemctl enable getty@ttyS0.service
  2. 确保内核引导参数console=ttyS0,115200是最后一个console参数

这样做,我仍然没有收到登录提示。检查日志显示systemd由于某种原因无法启动dev-ttyS0.device

Nov 25 20:20:27 pi-server systemd[1]: Timed out waiting for device dev-ttyS0.device. Nov 25 20:20:27 pi-server systemd[1]: Dependency failed for Serial Getty on ttyS0.

journalctl -u dev-ttyS0.device不会透露任何其他信息 - 只是它超时了。systemctl start dev-ttyS0.device也超时。

我错过了什么?为什么systemd不能启动设备?更重要的是,为什么缺少登录提示?

跑步 Linux pi-server 3.4.90 #2 SMP PREEMPT …

arch-linux serial-console getty

7
推荐指数
1
解决办法
9441
查看次数

getty 和 agetty 和有什么不一样?

当我查看agetty的手册时,我看到的是 alternative getty

command getty

7
推荐指数
1
解决办法
9338
查看次数

如何从命令行使用 getty

是否可以agetty从命令行使用?我试过命令

sudo agetty -s 34800 tty8 linux
Run Code Online (Sandbox Code Playgroud)

但它在几秒钟后返回并且tty8未打开。这是预期的行为吗?

此外,尝试在后台启动它

sudo agetty -s 34800 tty8 linux &> /dev/null &
Run Code Online (Sandbox Code Playgroud)

立即返回。为什么?

tty getty

6
推荐指数
1
解决办法
5394
查看次数

Linux 终端在重启后仅自动登录一次

我试图让我的计算机在 Arch Linux 计算机上重新启动后自动以特定用户身份登录。我按照Arch Linux Wiki 的指南,运行# systemctl edit getty@tty1并粘贴了以下几行:

[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --autologin username --noclear %I $TERM
Run Code Online (Sandbox Code Playgroud)

这有效,我会自动登录以及一切。但是,当我因为想以其他人的身份登录而按 CTRL+D 注销时,会触发自动登录并立即重新登录。如何将自动登录配置为仅在启动后第一次自动登录,并且当我手动注销时什么都不做?

arch-linux autologin terminal getty

5
推荐指数
1
解决办法
3072
查看次数

为什么 agetty 要求自己提供用户名?

从手册页:

agetty 打开一个 tty 端口,提示输入登录名并调用 /bin/login 命令。它通常由 init(8) 调用。

但是如果你不带任何参数运行 login,它会询问用户名。那么为什么不让 login 完成询问用户名的工作,而不是在 agetty 中进行(另外,如果您的登录失败,login会再次询问您的用户名)?

这对我来说似乎是多余的。我认为 agetty 的唯一工作是重复调用 login (因为在一定次数的尝试后登录退出)。

login getty

4
推荐指数
1
解决办法
667
查看次数

这个 openvt 命令在做什么?

这个命令到底在做什么(一步一步)?

openvt -c 40 /bin/agetty tty40 linux
Run Code Online (Sandbox Code Playgroud)

我改用这个命令:

openvt -c 41 /bin/agetty tty40 linux
Run Code Online (Sandbox Code Playgroud)

并且 agetty 是在 tty40(不是 tty41)上启动的。这是为什么?这个-c 41选项似乎没有必要。删除它会产生相同的结果。

tty getty chvt

2
推荐指数
1
解决办法
4205
查看次数

访问更高的 TTY 和 getty 的角色

在尝试理解 TTY 时,我有一些黑暗区域。

  • 在我的系统上,我有/dev/tty[1-63]. 正在udev创建这些字符设备吗?以及如何访问它们(例如可以使用 Ctrl+Alt+F2 访问 tty2)?/dev/tty40例如,我如何访问?

  • 据我了解,当我访问/dev/tty1, 时agetty被调用,然后调用login. agetty电话之外的真正作用是login什么?

tty getty

1
推荐指数
1
解决办法
1189
查看次数