응용프로그램이 inittab에서 시작되지 않습니다.

응용프로그램이 inittab에서 시작되지 않습니다.

임베디드 시스템에서 inittab을 통해 애플리케이션을 실행하려고 합니다. 환생의 이점을 활용하려면 init.d 스크립트를 통하지 않고 inittab을 통해 이 작업을 수행하는 것이 바람직합니다. 이 시스템에는 systemd가 없습니다. inittab에 다음 항목이 있습니다: myapp::respawn:/path/to/my/app. 아무리 노력해도 부팅이 되지 않습니다. 모든이것나는 다음을 관찰했습니다(수동으로 시작).

sh -c /path/to/my/app         # works
sh -c exec /path/to/my/app    # does not work
sh -c 'exec /path/to/my/app'  # works

모든이것답변 다음 쉘 스크립트도 작동합니다.

#!/bin/sh
exec /path/to/my/app

현재 init.d 스크립트를 통해 애플리케이션을 시작합니다. su - root -c '/path/to/my/app &'작동하지만 동일한 명령이 inittab에서도 작동하지 않습니다. 내 대안은 init.d에서 다른 모니터 스크립트를 실행하여 ps출력에서 ​​찾을 수 없는 경우 내 응용 프로그램을 계속 실행하고 다시 시작하는 것이지만 inittab을 통해 "자동" 재생성 기능을 갖는 것이 더 나을 것입니다.

답변1

게시한 직후, 과거에 inittab 태그가 특정 길이보다 작아야 한다는 것을 알아차린 것이 어렴풋이 기억납니다(이것은 빌드루트 생성 시스템입니다). 실제로 inittab 항목을 변경하면 app::respawn:/path/to/my/app작동합니다! 라벨은 4자 이하여야 하는 것 같습니다. 누군가에게 도움이 될 수 있도록 이 질문을 남겨주세요.

관련 정보