2005年05月28日

Debianにおけるサービスのコマンド

Debian に乗りかえたとき、RedHat との違いにとまどった点の一つに、サービスの再起動などを行なう時のコマンドをあげることができる。RedHat では、service コマンドがあって、たとえば apache の設定ファイルを編集し、設定を有効にするためにサービスを再起動したければ、次のようにする。

# service httpd restart

しかし Debian では、service に相当するコマンドがなく(公式サイトのDebianリファレンスを参照)、スクリプトをフルパスで指定して、引数をつけて再起動する。

# /etc/rc.d/apache restart

e-ueda は、いちいち起動スクリプトをフルパスで指定するのもアレなので、下記のようなシンプルな Perl スクリプトを自作し、rcd と名付けて使い続けてきた。

#!/usr/bin/perl -w
use strict;
my $path = '/etc/init.d/';
my ($service,$arg) = @ARGV;
die "usage: rcd servicename argument\n" if ! $arg;
if (-f "$path/$service") {
    print "$service サービスを $arg します\n";
    exec "$path$service $arg";
} else {
    die "no such service\n";
}

次のように実行する。

# rcd apache restart

簡単だが結構重宝している。もしよかったら読者の方にも使っていただきたい。
ところで。もしや Debian にもサービスを上げ下げするコマンドがあるのだろうか?何年も使ってきて今さらだけど。

Posted by e-ueda at 2005年05月28日 21:55