我有一台装有Debian Jessie的无头计算机(TS-7680),可以通过Putty命令行进行访问。该计算机没有任何GUI,只能通过命令行访问。如果出现临时断电,它将与需要自动重新启动的程序一起放入现场。
我知道如何使程序自动运行。但是,我无法通过登录。每次启动计算机时,系统都会提示我输入root登录。我在这台计算机上没有密码。在启动代码之后,它看起来像这样:
Debian GNU/Linux 8 ts7680 ttyAMA0
ts7680 login:
在这一点上,我必须键入root
以进入命令提示符root@ts7680:~#
有人知道如何自动登录吗?我到处都用Google搜索,但是找不到答案。我没有运气尝试过这种解决方案。
假设systemd对待ttyAMA0
串行端口的方式ttyS0
与在PC上对待的方式相同,则需要编辑由开头的命令[email protected]
。
(您可以检查systemctl status serial-getty@ttyAMA0
它是否处于活动状态。)
基本版本位于其中/lib/systemd/system/[email protected]
,在其中,我们找到启动getty的命令:
ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM
创建一个覆盖文件的服务来启动agetty
同--autologin root
:创建目录/etc/systemd/system/[email protected]
,以及一个名为override.conf
它包含以下内容:
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin root --keep-baud 115200,38400,9600 %I $TERM
systemctl edit [email protected]
将有助于做到这一点。
请注意,作为参数传递给的终端类型agetty
需要与您的串行终端实际匹配。多年来,这一直是系统化中各种方法的主题。它已经硬连接到vt102
内核/引导加载程序并从内核/引导加载程序(间接)继承。目前的方法(截至2020年)在决策方式上相当复杂。
但是,它最终只会从三个值linux
中进行选择vt220
,以及内核/引导程序加载程序对Linux控制台所说的内容。对于任何实际终端,第一个都不是正确的,甚至不可能通过串行电缆近似匹配终端仿真器。第二个不太可能是正确的,尤其是在色彩方面。都不匹配PuTTY,其正确的终端类型是putty
(或putty-256color
)。而且第三个可能也不putty
是;除非您已将Linux重定向/dev/console
到串行终端和PuTTY,并且已在控制台中使用控制台终端类型正确地重新配置了引导加载程序。
因此,为了获得最佳结果,您还需要TERM
在该覆盖文件中设置环境变量:
Environment=TERM=putty-256color
然后重新加载systemd,我们可以检查新配置是否到位:
# systemctl daemon-reload
# systemctl cat serial-getty\@ttyAMA0 | grep Exec
(我们应该在最后ExecStart
一行看到新命令。)
如果只想在按键后自动登录,请在命令行中添加-p
或。--login-pause
agetty
您链接的页面讨论了如何在虚拟控制台上配置自动登录:它们是通过配置的[email protected]
,用于的命令行agetty
有些不同(似乎只是缺少该--keep-baud
选项)。在这种情况下,我们将使用/etc/systemd/system/[email protected]/override.conf
fortty1
代替。
Ask Ubuntu中有一个答案,其中包含有关覆盖systemd配置的更多详细信息。
在使用sysvinit而不是systemd的系统上,您需要在/中添加/修改与串行端口相对应的行/etc/inittab
:
T0:23:respawn:/sbin/getty -L ttyAMA0 --autologin root 38400 vt100
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句