アプリケーションは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文字以下でなければならないようです。誰かに役立つようにこの質問を残してください。

関連情報