・ Web系SE募集 (技術開発部開発系エンジニア・Java/Tomcat 420万円~750万円)
   ・ 社内SE募集 (業務系システムの開発・社内イントラ)

FreeBSD で chkconfig の様な サービス一覧を取得するコマンド

user-pic
0

LinuxからFreeBSDを触る事になって戸惑うのは、おそらくサービス系を管理するツール(コマンド)が無い事も、その一つだろう。

Linuxであれば、
/sbin/chkconfig
コマンドで、サービスの一覧や、サービスの起動・停止などが簡単に設定可能である。
ところが、FreeBSDには、そういったコマンドは無い。

そこで ググると だいたいの回答は、
/etc/rc.conf や /etc/defaults/rc.conf ファイルの、`*_enable=' を確認する様に書かれている。
サービスの一覧を取得したいだけなのに、その度にそれらファイルから grep するのは後回しにしたくなる作業だ。

そこで、サービス一覧を取得するための簡単なコマンド(シェルスクリプト)を作りました。

rclist  (version 0.01)
(※ソース内の英語が意味不明でしたら、ご指摘とアドバイスを・・)

このFreeBSDからサービス一覧を取得するコマンドは次の特徴(機能)がある。

1./etc/rc.conf や /etc/defaults/rc.conf から 「*_enable=」を grep 出力してくれる。

$ ./rclist -f
/etc/rc.conf: ntpdate_enable="YES"
/etc/rc.conf: sshd_enable="YES"
/etc/defaults/rc.conf: accounting_enable="NO"
/etc/defaults/rc.conf: amd_enable="NO"
/etc/defaults/rc.conf: apm_enable="NO"
/etc/defaults/rc.conf: apmd_enable="NO"

2./etc/rc の 一部を再現して、/etc/rc.d/ や /usr/local/etc/rc.d/ から、サービスのコマンドの一覧に YES/NO を出力してくれる。
これは、サービスの起動順に表示され、一度だけ必ず実行されるコマンドも表示される。
※一度だけ必ず実行されるコマンドは、rc.conf に `*_enable=' というのは無い。

>$ ./rclist -c
rc_elem                       name                                                   rcvar
--------------------          --------------------                    ------------------------
/etc/rc.d/random              random
/etc/rc.d/adjkerntz           adjkerntz
/etc/rc.d/atm1                atm                                               atm_enable=NO
/etc/rc.d/hostname            hostname
/etc/rc.d/kldxref             kldxref                                       kldxref_enable=NO
/etc/rc.d/sppp                sppp
/etc/rc.d/ipfilter            ipfilter                                     ipfilter_enable=NO
/etc/rc.d/ipnat               ipnat                                           ipnat_enable=NO

3./etc/rc の 一部を再現して、/etc/rc.d/ や /usr/local/etc/rc.d/ から、*_enable="YES" のサービスのコマンドやコマンドを実行するシェル関数名を出力してくれる。
これも、サービスの起動順に表示され、一度だけ必ず実行されるコマンドも表示される。
※一度だけ必ず実行されるコマンドは、rc.conf に `*_enable=' というのは無い。

$ ./rclist -d
rc_elem                       name                                                   rcvar      start_cmd/command
--------------------          --------------------                    ------------------------  --------------------
/etc/rc.d/random              random                                                            random_start
/etc/rc.d/adjkerntz           adjkerntz                                                         adjkerntz -i
/etc/rc.d/hostname            hostname                                                          hostname_start
/etc/rc.d/sppp                sppp                                                              sppp_start
/etc/rc.d/addswap             addswap                                                           addswap_start
/etc/rc.d/auto_linklocal      auto_linklocal                                                    auto_linklocal_start
/etc/rc.d/sysctl              sysctl                                                            sysctl_start
/etc/rc.d/cleanvar            cleanvar                                     cleanvar_enable=YES  cleanvar_start
  :(省略)
/etc/rc.d/sshd                sshd                                             sshd_enable=YES  /usr/sbin/sshd
/etc/rc.d/sendmail            sendmail_submit                       sendmail_submit_enable=YES  /usr/sbin/sendmail -L sm-mta -bd -q30m -ODaemonPortOptions=Addr=localhost
/etc/rc.d/sendmail            sendmail_clientmqueue              sendmail_msp_queue_enable=YES  /usr/sbin/sendmail -L sm-msp-queue -Ac -q30m
/etc/rc.d/cron                cron                                             cron_enable=YES  /usr/sbin/cron  -s
/etc/rc.d/localpkg            localpkg                                                          pkg_start
/etc/rc.d/mixer               mixer                                           mixer_enable=YES  mixer_start
/etc/rc.d/geli2               geli2                                                             geli2_start
/etc/rc.d/bridge              bridge                                                            bridge_start
/etc/rc.d/bgfsck              background-fsck                              background_fsck=YES  bgfsck_start

トラックバック(0)

トラックバックURL: http://arbolbell.jp/mt5/mt-tb.cgi/221

コメントする

このブログ記事について

このページは、Yuji Suzukiが2010年2月16日 13:47に書いたブログ記事です。

ひとつ前のブログ記事は「Dynamic DNS(DDNS)EveryDNS.net で RT-200KI の IPアドレスが変わるたびに、自動的にIPを更新するようにする。」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。