Top / Cygwin / initdでUNIXっぽいデーモン管理

initdでUNIXっぽいデーモン管理

インストール

"Cygwin Setup" の "Select Packages" において、"System - sysvinit" を "Install" にします。 後は、通常通りインストールを続行します。

初期自動設定

コマンドプロンプトにて、以下のコマンドを実行します。

$ /usr/binb/init-config

さて、ここで注意。 inittabを再構成してしまうと、どうも設定がいい加減なようですので、後で辛い目に遭います。 デフォルトのままのinittabを使うため、

"Overwrite existing /etc/inittab file?"

に対しては noと答えてください。後はyesで構いません。

※それでも、inittabをプチ壊した場合は、

$ /etc/postinstall/initscripts.sh.done

を実行すれば、元に戻ります。

サービスとして登録

初期自動設定で、勝手にサービスに登録されるみたいですが、 ここでは練習と"CYGWINのツールである"を明確にすることも兼ねて、 サービスを削除&再登録してみます。 コマンドプロンプトにて

$ cygrunsrv -R init
$ cygrunsrv -I init -d "CYGWIN initd" -p /sbin/init -a -i -s INT

でOKです。

xinetd,sshdを登録

以下のコマンドを実行します。(unixと基本的に同じです)

$ /usr/sbin/chkconfig --add xinetd
$ /usr/sbin/chkconfig --add sshd

あっ、これを実行する前に、xinetdやsshdの設定を済ましておいてくださいね。 (詳細は別ページにまとめてます)

再起動して有効に

では、initdを再起動します。

  • mmcの「サービス」を用いる場合
    「スタート」-「設定」-「管理ツール」-「サービス」を開きます。 "CYGWIN initd"を選択して、ツールバーの再起動ボタンをクリック。
  • コマンドラインから再起動する場合
    コマンドラインから、以下を実行。
$ cygrunsrv -E init
$ cygrunsrv -S init

注意事項

上記の手順で起動した場合、initdおよびsshd,xinetdは、Windowsの"SYSTEM"権限で実行されます。 従って、ログ等の書き込み先(特に /var 以下)は、ディレクトリのパーミッションを "SYSTEM"グループにしておく必要があります。

$ chmod -r SYSTEM:SYSTEM /var

などと実行して、パーミッションを変更しておきましょう。(ユーザ名まで無理に"SYSTEM"にする必要はありませんので)

2004-12-22 (水) 18:26:43

理工学生のためのHAND-MADE!


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-12-26 (月) 00:53:16 (4173d)