所以我用 C 语言编写了一个简单的 UI。它是只读的并显示系统信息,如磁盘空间、网络信息等。
我正在运行 ubuntu 服务器 14.04,当前当设备启动时,系统会提示我经典的 ubuntu 文本登录和密码提示。相反,我希望我的程序可执行文件(用 gcc 编译)在登录提示之前运行并显示。最好的方法是什么?
请原谅我缺乏“术语”。我在这个领域相对较新,并且在 shell 脚本方面没有太多经验。如果需要更多信息来回答这个问题,请告诉我。我自己在措辞上遇到了一些麻烦。:) 提前致谢!
编辑:通过图片来了解想法。这是类似的东西,尽管这只是我在谷歌搜索时发现的东西来展示这个想法。
答案1
等待用户在文本控制台上登录的程序通常称为盖蒂。 (顺便说一句,GUI登录对应的程序类型是显示管理器)这也是提示输入用户名的程序。提示输入密码的程序是login
。 getty 有多种实现方式; Ubuntu 14.04 中的默认值是阿吉蒂。
在你的情况下,我认为最简单的解决方案是告诉agetty 1.不提示输入用户名,2.调用一个运行你的程序的脚本,然后调用login
并告诉login
显示用户名提示。
剧本:
#!/bin/sh
yourprogram
exec /bin/login
如何配置 getty:编辑/etc/init/tty1.conf
其他控制台的类似文件。将行更改exec
为
exec /sbin/getty -l /path/to/script --skip-login -8 38400 tty1
另一种可能性是利用 getty 显示文件的事实/etc/issue
在登录提示之前。如果您只想显示不经常更改的文本,那么您可以将该文本写入/etc/issue
.虽然你可以安排文件具有动态内容,这比更改 getty 调用要困难一些。但它也适用于其他登录服务,例如 SSH。