2007年11月29日木曜日

athcoolを自動起動する

ターミナル上で毎回 sudo athcool on するのは面倒なので、他のシステムサービス同様に自動起動するようにします。
手順としては、起動スクリプトを作成後、それをサービスとして起動するように登録します。
起動レベルは 2 3 4 5 起動優先順位は一番最後、終了優先順位は一番最初とします。
僕は起動スクリプトなど書いた事はありませんので、他の詳しいサイトからそれらしき物をパクって自分用に改編しました。
先ずは起動スクリプトを作り、/etc/init.d/に置きます。

$> sudo gedit /etc/init.d/athcool

その内容は以下です。
----- 次の行から -----
#!/bin/sh
#
# athcool: start or stop
#

start(){
echo -n "starting athcool:"
/usr/local/sbin/athcool on
return 0
}
stop(){
/usr/local/sbin/athcool off
return 0
}
case $1 in
start)
start
;;
stop)
stop
;;
esac
----- 上の行まで -----
僕はathcoolを/usr/local以下にインストールしたので、実行ファイルのパスは/usr/local/sbin/athcoolになっていますが、このパスは実際に自分がインストールしたパスを指定します。
このファイルを保存して、更にプログラムとしての実行権限を与えます。

$> sudo chmod +x /etc/init.d/athcool

最後にサービスとして登録します。

$> sudo update-rc.d athcool start 99 2 3 4 5 . stop 1 0 1 6 .

これで、ランレベル 2 3 4 5 では起動していて、ランレベル 0 1 6 では停止しています。(という意味だと思う)
起動優先順位は99という、一番大きな数値を与えているので一番最後に起動します。(と思う)
終了優先順位は1という、一番小さな数値を与えているので一番最初に停止します。(と思う)
確認として、sysv-rc-conf コマンドで実際に登録されているかみてみましょう。

$> sudo sysv-rc-conf

このコマンドをインストールしていない場合には、ファイルブラウザーで /etc/rc0.d から /etc/rc6.d までのディレクトリーを実際に覗いてみましょう。
正常に登録されていれば、各ディレクトリーに athcool というファイルがあるはずです。
たった今 athcoolをサービスとして起動したいのであれば、

$> sudo /etc/init.d/athcool start

同様に、athcoolのサービスを停止させたいのであれば、

$> sudo /etc/init.d/athcool stop

ちなみに、athcoolは自分の仕事をしたら直ぐに消えます。
つまり、常駐型のプロセスではありません。

サービスとして登録したので、次回のUbuntu起動から自動的に起動して仕事をきっちりこなしてから消えます。(と思う)

0 件のコメント: