我正在尝试设置一台需要在启动时运行用户程序的 alpine linux 机器。
除了root之外我没有添加任何用户。
在搜索如何启用自动登录的解决方案后,我发现说明说我需要使用agetty。为了:
apk add util-linux
添加年龄。cd /etc/init.d && ln -s agetty agetty.tty1
为终端添加agetty服务。cd /etc/conf.d && cp agetty agetty.tty1
添加配置。nano agetty.tty1
或使用其他编辑器将“--autologin $USER --noclear”添加到agetty选项中rc-update add agetty.tty1
以确保启动时启动。
令我困扰的一件事是,指令告诉我们在添加新的、更改的服务之前关闭以前的 Agetty 服务 - 并且没有启用 Agetty 服务。
然而,事情出了问题:在机器启动期间,我可以在启动多个服务(chrony 和其他一些服务)之前看到自动登录的输出,然后我收到另一个不再起作用的登录提示。似乎没有两个登录/终端,系统变得无法工作。
我的错误是什么?我该如何解决这个问题?
答案1
如果“自动登录”的意思是“我想要一个没有密码的 root shell”,那么最简单的方法就是添加如下内容/etc/inittab
:
tty1::respawn:/bin/sh
这将在给定终端上生成一个 root shell,而不是登录提示。
要使用 完成同样的事情agetty
,请完全按照您在问题中所做的操作,但不要忘记禁用现有的 getty 服务定义在/etc/inittab
:
sed -i '/tty1/ s/^/#/`
这应该让你:
#tty1::respawn:/sbin/getty 38400 tty1
然后重新启动(或kill -HUP 1
重新加载/etc/inittab
)。