自定義串列埠終端登陸介面,客製化getty

2022-09-14 17:48:14 字數 992 閱讀 2604

linux在系統初始化完成後總是會提供乙個登陸介面。

這個介面是由getty或者agetty程式產生的,輸入使用者名稱後會呼叫login程式進行密碼驗證。

解決方案如下:

1.如果只是顯示一些簡單的靜態資訊,修改/etc/issue檔案即可。

2.複雜情況,需要動態生成內容或者需要與使用者互動。可以考慮用自己的程式代替getty。

我這裡講第二種情況。

1. 找到呼叫getty/agetty程式的位置

systemd系統中可能在/lib/systemd/system/[email protected]

下圖是將agetty換成了我自己的指令碼mygetty。

2. 自己的程式中重定向輸入輸出到終端

我自己的登陸程式中簡單的輸出歡迎語句,如果使用者輸入1,則切換到預設的getty,否則重複顯示歡迎語句。

最關鍵的點就是輸入輸出重定向。

指令碼中$1=%i,其實就是終端名,例如ttymxc1。

shell指令碼實現如下:

#!/bin/sh

tty=$1

while

true

doecho

'welcome!

' > /dev/$tty

echo *enter 1 to switch to the login terminal > /dev/$tty

read value

$tty

if [ "

$value

" = '

1' ];then

exec /sbin/agetty -8 -l $tty 115200

xterm

fidone

C 登陸介面

在c 中從登陸介面進入主介面,進入主介面以後怎麼關閉登陸介面 有很多方法,我就說兩種 方法一 在登入介面的登入按鈕的單擊事件下,寫 這種情況其實把主介面看作登入介面的子窗體。只是把登入介面隱藏,它還存在於記憶體中,不過一般登入介面很小,不佔多少資源,也無所謂。private void btnlogi...

WPF 登陸介面

效果圖 黑色是我的桌面 圓角登入框 以下基於wpf。一開始最先要的效果就是圓角窗體,單純出於美觀的心態,但是人是不滿足的,改了一點就像再有一點。哈哈哈 更改預設 其實就是將原有的窗體變隱藏,然後搞乙個新的出來。windowstyle none allowstransparency true back...

登陸介面by VUE elementUI

過來一遍vue基礎於是想嘗試先寫乙個登陸介面先做準備,為後面的學習開個頭,ui元件選用的是elementui。login style display flex justify content center login1 style text align center position absolut...