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 にもサービスを上げ下げするコマンドがあるのだろうか?何年も使ってきて今さらだけど。