起動時に tty にログインする方法

起動時に tty にログインする方法

Linuxの起動時に特別なtty(例えばtty2)で何らかのコマンドを実行し、システムが再起動するたびにそのttyでこのコマンドが実行されるようにします。これそうするためのリンク。

問題なく動作しますが、問題は、起動時に目的の tty にログインしてからコマンドを実行する必要があることです。最初に何らかのコマンドで tty にログインする方法はありますか? ありがとうございます

答え1

プログラムを実行するためのより簡単な解決策としては、--autologinのフラグgettyと、 から必要なコマンドを実行する関数を組み合わせることが考えられます.bashrc

パート 1: getty への自動ログイン

ご存知かもしれませんが、TTYはゲッティプログラム/etc/init/ディレクトリ内のスタートアップ サービスとして。Ubuntu の場合、デフォルトのプログラムは でagetty--autologinフラグが付いています。したがって、次の操作を実行できます。

ターミナルで実行してsudo nano /etc/init/tty1.conf、TTY1のinitファイルを開きます(TTY1は単なる例であり、どれを選択してもかまいません)。行を変更します。

exec /sbin/getty -8 38400 tty1

exec /sbin/getty --autologin userName    -8 38400 tty1

実際のユーザー名に置き換えてください userName

パート2: シェルログイン時に関数を実行する

ttyLinux/Unixシステムには、現在使用している端末の種類を報告するという便利な小さなプログラムがあります。たとえば、gnome-terminalでは次のような報告が行われます。

$ tty
/dev/pts/27

しかしTTY1では次のように報告されます

$ tty
/dev/tty1

$HOME/.bashrcファイルの先頭に関数を作成できることを知っている

function testTTY
{
  isTTY=$(tty | awk '{if ($0~/\/dev\/tty.*/) {print "true"}else{print "false"}}')

  if [ $isTTY == "true" ]; then
    printf "You are in virtual console\n"
    printf "current disk usage is"
    df
  fi
}

次に、 の下部で.bashrc、 として関数を呼び出しますtestTTY。つまり、最初に関数を定義し、後で呼び出します。

補足事項:

  • カスタムコマンドをif [];then ...fi
  • 特定の TTY が必要な場合は、isTTYコードを次のように変更します。isTTY=$(tty | awk '{if ($0=="/dev/tty1") {print "true"}else{print "false"}}')

答え2

以下の手順に従ってください。

まずmingettyをインストールします: $ sudo apt-get install mingetty

5.2) /etc/init/tty1.confを編集する

/* ルートをデフォルトのログインにするため */

変更: exec /sbin/getty -8 38400 tty1

実行先: exec /sbin/mingetty --autologin root --noclear tty1

/* 通常のユーザーをデフォルトのログインとして設定する場合 */

/bin/login -f abcuser < /dev/tty1 > /dev/tty1 2>&1を実行します。

関連情報