Shell script 에서 echo print 가 안되는 문제.

ctosec의 이미지

안녕하세요.

초보 리눅스 개발자 입니다.
특정상태를 Monitor 하는 script 를 만들어,
rCS 에서 불렀는데,
첫번째 line 의 echo 만 출력하고,
그 다음 부터는 출력이 안됩니다.

문제가 무엇인가 하고 보니,해당 프로세스가 TTY 가 ? 입니다.
inittab 의 구조는 다음과 같습니다.

# Startup the system
::sysinit:/etc/init.d/rcS

# Put a getty on the serial port
ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100

# Stuff to do for the 3-finger salute
::ctrlaltdel:/sbin/reboot

# Stuff to do before rebooting
::shutdown:/root/reset_stb.sh

문제는 login 을 한다음에 해당 스크립을 부르면 정상 출력을 하는데,
login 전에는 찍다가 login 후에는 안찍습니다.

어떤게 원인인지 전혀 몰라 고수님들께 도움 요청 드립니다.
부탁드립니다. 꾸벅

shimmany의 이미지

busybox를 사용하신다면.. 아마도.. runlevel문제인것 같습니다. busybox의 경우
inittab에 명세된 각 action은 모드 동일한 runlevel입니다. 그러므로, 표준 입출력 콘솔을 공유할 수 없겠죠..
즉, sysinit action시 점유한 console은 respawn action이 넘겨받으면, 더이상 출력을 할수 없는것입니다.
서로 다른 runlevel이었다면 각 runlevel별로 입출력이 동작됩니다.