2

スクリプトファイルを作成しました-

#!/bin/sh
echo "my application is here"
./helloworld  # helloworld is our application
  1. スクリプトファイルを作成した後、コピーしましたinit.d
  2. 私はコマンドを与えましたchmod +x /etc/init.d/vcc_app (vcc_appは私が作成したスクリプトの名前です)
  3. 次に、コマンドを実行しましたln -s /etc/init.d/vcc_app /etc/rc.d/vcc_app(rc.d は実行レベルのディレクトリです)。

しかし、ボードを再起動すると、アプリケーションが自動的に実行されません。誰でも私を助けることができますか?

4

2 に答える 2

1

LSB に準拠/etc/init.dする必要があるスクリプト。

起動プロセスの最後にコマンドを自動的に実行したいだけの場合は、/etc/rc.local代わりに配置してみてください。

于 2012-05-25T09:34:56.747 に答える
1

すべての Linux システムが同じinitデーモンを使用しているわけではありません (ubuntu は upstart を使用しています: http://upstart.ubuntu.com/getting-started.html ) 。その他の一般的な機能はとですが、繰り返しになりますが、標準全体に当てはまるものはありません。例えば:startstopstatusrestart

!#/bin/sh

start () {
    echo "application started";
    ./helloworld  # you should use an absolute path here instead of ./
}

stop () {

}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    *)
        echo "Usage start|stop";
esac

exit $?

最後のビットは、init が script を呼び出すため、最初のコマンド ライン引数に基づくスイッチですmyrcscript start

を使用するstop()(そしてしばしば役立つrestart()) には、によって起動されたプロセスの pid を保持するか、取得できる必要がありますstart()。これは、/tmp 内の小さな「pid ファイル」(pid を含むテキスト ファイル。たとえば、start() で作成された/tmp/myscript.pid ) で行われることがあります。

Ubuntu で使用される「upstart」init デーモンには、独自の特定の機能がありますが、それらを使用する必要がない限り、最小限の停止/起動を維持するだけで、(おそらく) どこでも動作します。

于 2012-05-25T09:55:51.743 に答える