busybox inittab과 rcS에서 가능한 한 빨리 프로세스를 시작하고 관리하는 방법은 무엇입니까?

busybox inittab과 rcS에서 가능한 한 빨리 프로세스를 시작하고 관리하는 방법은 무엇입니까?

저는 busybox를 init로 사용하는 임베디드 Linux 시스템을 개발 중입니다.
애플리케이션을 실행하려면 두 가지 요구 사항이 있습니다.

  1. 내 지원서는 가능한 한 빨리 시작되어야 합니다.
  2. 비지박스(종료 시 다시 생성)로 관리해야 합니다.

먼저 아래와 같이 /etc/inittab에서 애플리케이션을 시작합니다.

# now run any rc scripts
::sysinit:/etc/init.d/rcS

# Put a getty on the serial port
#ttyS3::respawn:/sbin/getty -L  ttyS3 57600 vt100 # GENERIC_SERIAL
#no login
::respawn:/usr/bin/myapp
::respawn:-/bin/sh

이런 식으로 myapp은 busybox에 의해 관리되며, 종료되면 busybox가 자동으로 시작합니다.

하지만 myapp을 시작하기 전에 많은 서비스/데몬이 시작되는 것으로 나타났습니다 /etc/init.d/rcS. 이는 첫 번째 요구 사항을 충족하지 않습니다.

내 앱을 실행하기 위해 생성 /etc/init.d/S02myapp(에서 실행 /etc/init.d/rcS)했지만 두 번째 요구 사항을 충족하지 않습니다(Busybox가 에서 실행한 앱을 관리할 수 있는지 여부 rcS).

그런 다음 아래와 같이 두 요구 사항을 모두 충족하는 다른 방법을 찾았습니다.

  1. 변경하고 /etc/init.d/S02myapp다른 프로세스를 myapp.sh백그라운드 프로세스로 시작하십시오.
  2. Create myapp.sh에는 myapp이 포그라운드 프로세스로 시작되는 while 루프가 있습니다.

이를 통해 myapp은 가능한 한 빨리(startup에 의해 rcS) 시작되고 종료되면 while 루프가 myapp.sh다시 시작됩니다.

ps ax나는 그것이 작동한다는 것을 확인했지만 이 방법은 다음과 같은 것을 보여주기 때문에 약간 추악하다고 생각합니다 .

 1539 root      0:00 {myapp.sh} /bin/sh /etc/init.d/myapp.sh
 1544 root      0:00 /sbin/mdev -df
 1545 root      1:21 myapp

내 지원 요구 사항을 충족할 수 있는 명확한 방법이 있는지 궁금합니다.

관련 정보