시작 시 tty에 로그인하는 방법

시작 시 tty에 로그인하는 방법

Linux 시작 시 특수 tty(예: tty2)에서 일부 명령을 실행하여 시스템이 재부팅될 때마다 이 명령이 해당 tty에서 실행되도록 하려고 합니다. 나는 사용했다이것그렇게 하려면 링크를 클릭하세요.

잘 작동하지만 문제는 시작할 때 원하는 tty에 로그인한 다음 명령을 실행해야 한다는 것입니다. 처음에 일부 명령으로 tty에 로그인하는 방법이 있습니까? 감사해요

답변1

프로그램 실행에 대한 더 간단한 솔루션인 IMHO는 --autologin의 플래그 getty와 에서 원하는 명령을 실행하는 함수를 결합하는 것입니다 .bashrc.

1부: getty에 자동 로그인

당신이 알 수도 있고 모를 수도 있듯이 TTY는 다음과 같이 열립니다.게티 프로그램/etc/init/디렉토리 의 시작 서비스로 . Ubuntu의 경우 기본 프로그램은 플래그 agetty가 있는 입니다 --autologin. 따라서 우리는 다음을 수행할 수 있습니다.

터미널에서 실행하여 sudo nano /etc/init/tty1.confTTY1에 대한 초기화 파일을 엽니다(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
  • isTTY이에 대한 특정 TTY 변경 코드가 필요한 경우 :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

/* 일반 사용자를 기본 로그인으로 만들기 위해 */

exec /bin/login -f abcuser < /dev/tty1 > /dev/tty1 2>&1

관련 정보