linux 셸 알림 bash: 이 셸 의 작업 컨트롤 없 음

1196 단어
셸 에서 다른 tty 로 달 리 는 셸 을 시작 할 때 이 힌트 를 만 날 수 있 습 니 다.가장 흔히 볼 수 있 는 것 은 셸 이 직접 / dev / console 을 표준 입 출력 으로 하 는 것 이다.예 를 들 어 gentoo, arch 는 하 드 디스크 를 사용 하여 대 법 을 설치 하지만 하 드 디스크 를 찾 을 수 없습니다. 하 드 디스크 는 자동 으로 셸 을 시작 합 니 다. 이 셸 은 job control 이 없습니다.원인 에 대해 서 는 관련 된 내용 이 비교적 많 기 때문에 나 는 여기에서 상세 한 분석 을 하고 싶 지 않다.깊이 알 고 싶다 면 AUPE 를 직접 보 세 요.대체적인 원인 은 session leader 가 터미널 장 치 를 열 려 고 할 때 이 leader 가 터미널 을 제어 하지 않 으 면 이 터미널 장 치 는 자동 으로 session leader 를 바 꾸 는 제어 단말기 가 될 것 이다.이 점 을 알 면 왜 이런 힌트 가 있 는 지 이해 하기 어렵 지 않다. 즉, 셸 은 제어 단말 기 를 찾 지 못 했다 는 것 이다.해결 방법 은 간단 합 니 다. agetty 를 사용 하여 셸 을 호출 합 니 다.agetty 는 새로운 세 션 을 만 들 것 입 니 다. 제어 터미널 이 자 연 스 럽 게 없습니다.그래서 자 연 스 럽 게 agetty 가 열 린 tty 는 자동 으로 제어 단말기 가 되 었 고 agetty 에 의 해 셸 을 호출 하 는 것 도 이 점 을 계승 할 것 입 니 다.다음은 하나의 예 이다.
#!/bin/sh

TMPNAME=`mktemp /tmp/bbsh.XXX`
echo '#!/bin/sh' > $TMPNAME
echo 'exec /bin/sh' >> $TMPNAME

chmod +x $TMPNAME

#   tty8            
/sbin/agetty -l /tmp/bbsh 38400 tty8 linux
rm $TMPNAME

이 스 크 립 트 를 실행 하면 tty 8 에서 agetty 를 실행 합 니 다.login name 을 마음대로 입력 하 십시오. 나중에 차 로 돌아 가면 셸 을 볼 수 있 습 니 다. 그리고 이 셸 은 job control 이 있 습 니 다.이렇게 하면 너 는 더욱 좋 은 미니 Liux 를 만 들 수 있다.
 

좋은 웹페이지 즐겨찾기