プロが教えるわが家の防犯対策術!

Ubuntu10.04で、/etc/init.d/ の下に自作の起動スクリプトファイルを置いて、OS起動時にアプリが起動するようにしたいです。

Linuxについてはほぼ素人なので、ネット等で適当にスクリプトの書き方や設定方法を調べて、以下のような手順で実施してみましたが、うまく起動しませんでした。

以下に私が実施した手順を記載しますので、原因がわかる方、教えていただけませんでしょうか?


(1)以下のスクリプトを書いたファイル(例えば"start_eclipse")を /etc/init.d/ の下に配置する。

#!/bin/bash
start() {
echo -n "Starting eclipse: "
/opt/eclipse/eclipse
return 0
}
stop() {
killproc eclipse
return 0
}
case "$1" in
start)
start
;;
stop)
stop
;;
esac


(2)Terminalで以下のコマンドを実行。(ランレベルや優先順位はデフォルト値に任せています)

$ sudo su
# chmod 755 /etc/init.d/start_eclipse
# update-rc.d start_eclipse defaults


(3)Ubuntuを再起動して確認。⇒アプリ(この場合はeclipse)は起動しませんでした。


私としてはスクリプトの書き方が間違っているのではないかと予想しているのですが、スクリプトについてネットで調べると、今回のような単純なアプリ起動・終了方法についての情報があまり載っていない(と思う)ため、自力では間違い箇所が発見できませんでした。

ついでと言ってはなんですが、起動スクリプトの書き方や設定方法について参考になるサイトがありましたら、そちらも教えていただけましたら幸いです。


以上、宜しくお願い致します。

A 回答 (3件)

こちらで答えておきました。


http://detail.chiebukuro.yahoo.co.jp/qa/question …
    • good
    • 0

私はredhat系列がメインなのでイマイチ細かいことは判りませんが…



>update-rc.d start_eclipse defaults
で扱うためにはスクリプトの先頭部分に特定の書式に従ったコメントが必要かと思われますが…
実行後に/etc/rc2.dとかその辺りにシンボリックリンク作成されていますか?

eclipseをサービスとして起動するのはなんか違うんじゃないか?
というのは#1さんに同意です。

>/etc/init.d/ の下に自作の起動スクリプトファイルを置いて、OS起動時にアプリが起動するようにしたいです。

アプリというよりはサービスですし……。

あと…仮に成功しても、
>start() {
>echo -n "Starting eclipse: "
>/opt/eclipse/eclipse
>return 0
>}
だと、/opt/eclipse/eclipseを終了するまでスタートアップシーケンスが止まる可能性が高いです。

この回答への補足

ご回答いただきましてありがとうございます。

※もともとの質問内容の補足をNo.1さんの回答欄に追記させていただきましたので、お手数ですがそちらも御覧いただけますと助かります。


> > update-rc.d start_eclipse defaults
> で扱うためにはスクリプトの先頭部分に特定の書式に従ったコメントが必要かと思われますが…
> 実行後に/etc/rc2.dとかその辺りにシンボリックリンク作成されていますか?
>
一応、指定したランレベルのrc*.dにシンボリックリンクは作成されています。

私が参照した幾つかのサイトでは『細かいことを除けば極端な話、アプリ(サービス)を起動するスクリプトを一行書くだけで自動起動は実現できる』と書いてありましたので、私の解釈ではその”特定の書式に従ったコメント”は省略可能なのだと認識したのですが。(もちろん、その情報自体が間違っている可能性はありますが。)



> あと…仮に成功しても、
> (中略)
> だと、/opt/eclipse/eclipseを終了するまでスタートアップシーケンスが止まる可能性が高いです。
>
eclipseを例えにしたのは不適切でした…というのはNo.1さんへの補足に書いた通りですが、では仮に要望通りに動作するように書くとしたらどのようにスクリプトを書けばよいでしょうか?

eclipseである必要はありませんので、他に説明しやすいアプリ(もしくはサービス)がありましたら、それで構いません。(簡単な記述例がほしいです。)


お手数をお掛け致しますが、また何かアドバイスや情報をいただけましたら幸いです。
宜しくお願い致します。

補足日時:2012/09/18 23:23
    • good
    • 0

init.d の下に書いたのではXが起動する以前に実行されるんじゃないかな。



システム起動時にeclipseを起動するというのは、可能か不可能か以前に、おかしいでしょう。
ユーザーログイン時に起動するように設定するのでは?

この回答への補足

ご回答いただきましてありがとうございます。

起動したいアプリとしてeclipseを例えにしたのは間違っていたと反省しています。(OSについても、Linuxについて知りたいというだけで、Ubuntuに限定するつもりはありませんでした。)


もう少しやりたいことをちゃんと書きますと、最終的には組み込み機器のOSとしてLinuxを導入し、その機器の立ち上げ時に特定のアプリ(サービス?)が起動するようにしたいと考えています。

例えば、スマホや家電製品や携帯ゲーム機であれば、起動するとメニュー画面(HMI)が表示されると思いますが、もしこれがアプリで管理しているものだとしたら、このアプリをOS起動時(またはログイン時?)に起動させたいというのが目的です。


組み込みの場合、ユーザのログインという概念はないものと思っているのですが、上記例のような場合、アプリの起動をどのようなタイミングで行うべきなのかがよくわかっておりません。そもそもアプリなのかサービス(デーモン)なのかもよくわかりません(汗)

いろいろ分からないことが多く、質問も的外れな内容になっているかもしれませんが、また何かアドバイスや情報などいただけましたら幸いです。

宜しくお願い致します。

補足日時:2012/09/18 23:04
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!