
Linux 시작 시 특수 tty(예: tty2)에서 일부 명령을 실행하여 시스템이 재부팅될 때마다 이 명령이 해당 tty에서 실행되도록 하려고 합니다. 나는 사용했다이것그렇게 하려면 링크를 클릭하세요.
잘 작동하지만 문제는 시작할 때 원하는 tty에 로그인한 다음 명령을 실행해야 한다는 것입니다. 처음에 일부 명령으로 tty에 로그인하는 방법이 있습니까? 감사해요
답변1
프로그램 실행에 대한 더 간단한 솔루션인 IMHO는 --autologin
의 플래그 getty
와 에서 원하는 명령을 실행하는 함수를 결합하는 것입니다 .bashrc
.
1부: getty에 자동 로그인
당신이 알 수도 있고 모를 수도 있듯이 TTY는 다음과 같이 열립니다.게티 프로그램/etc/init/
디렉토리 의 시작 서비스로 . Ubuntu의 경우 기본 프로그램은 플래그 agetty
가 있는 입니다 --autologin
. 따라서 우리는 다음을 수행할 수 있습니다.
터미널에서 실행하여 sudo nano /etc/init/tty1.conf
TTY1에 대한 초기화 파일을 엽니다(TTY1은 단지 예일 뿐이며 원하는 것을 선택할 수 있습니다). 줄 바꾸기
exec /sbin/getty -8 38400 tty1
에게
exec /sbin/getty --autologin userName -8 38400 tty1
userName
실제 사용자 이름으로 바꾸십시오 .
2부: 쉘 로그인 시 함수 실행
tty
Linux/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