부팅시 기본 터미널이 명령어를 수행하게 만드는 방법

rma8806의 이미지

부팅시 기본 터미널이 명령어를 수행하게 만드는 방법이 있을까요?

rc.sysinit에 실행할 프로세스나 명령을 적어주면,부팅시 실행은 되나 터미널과 연결고리가 없어집니다.

시스템 시작시 이것저것 작업을 해줄 프로세스를 만들었는데, 이걸 터미널과 동기화를 해서 사용하고 싶고 가끔 입력도 받아야 해서 터미널의 자식으로 만들고 싶습니다.

기본 터미널이 처음 실행 되자 마자 터미널에 의해 한번만 직접 실행하게 만들고 싶은데, 어떻게 하면 될까요?

woonuk의 이미지

rc.local 에 screen 명령으로 필요한 작업을 작성하면, 나중에 터미널에 접속해서 screen 명령으로 해당 내용을 볼수 있습니다.

#
# myscreen 이라는 세션으로 스크린 생성하고 detach
# 
su - userid -c 'screen -d -m -S myscreen -t mytitle
 
#
# example 1: 생성된 스크린을 선택하고 date 명령 실행
#
su - userid -c 'screen -S myscreen -p mytitle -X stuff "date^M"'
 
 
#
# example 2: whoami 스크린 윈도우를 생성하고, 생성한 윈도우를 선택(-p)한 다음 whoami 명령어 실행(-X stuff)
#
su - userid -c 'screen -S myscreen -X screen -t whoami
su - userid -c 'screen -S myscreen -p whoami -X stuff "whoami^M"'

명령을 실행할때 -X stuff "command^M" 처럼 마지막 ^M은 엔터를 의미하는데, vi 편집기에서 ctrl+v, ctrl+m 명령으로 입력합니다.

차후 스크린 내용을 보고 싶을때에, screen -r myscreen 으로 확인하면 됩니다.

참고 : man screen