EMIT-Japan WebCT レター

  • 登録・解除
  • プライバシーポリシー

【管理者向けミニティップス】LinuxでWebCTを自動起動する

 システムと同時にWebCTを起動するように設定します。 こうしておくことで不慮のシステムダウンが起ってもWebCTを起動し忘れるといったことに対処できます。 ここでは/home/webct/webct_rootにWebCTをインストールし、/etc/webct内に正しくライセンスサーバがインストールされているものとします。 なお、ここでの説明はRed Hat Linuxに限定させていただきます。ご了承ください。

ライセンスサーバの自動起動

ライセンスサーバはスタート・ストップを制御するスクリプトが/etc/webct/S96WebCTLicenseに置かれます。これをシステムのrcディレクトリにシンボリックリンクを張るのが最も簡単な方法になります。まず、以下のコマンドを利用して現在のランレベルを調べてください。

$ /sbin/runlevel
N 3

N 3などと表示されました。これは一つ前のrunlevelと現在のrunlevelを示しています。ランレベルを一度も切り換えていないのであれば一つ前は存在しないためNとなります。 すなわち、現在のランレベルは3ということがわかりました。 これはシステムごとによって異なっている可能性がありますので、必ず現在のランレベルを調べるようにしてください。

ランレベルがわかったら、そのランレベルのrcディレクトリに対してシンボリックリンクを張ります。rootで以下のようなコマンドを実行するだけで出来ます。

# ln -s /etc/webct/S96WebCTLicense /etc/rc3.d

/etc/rc3.dの3が先程調査したランレベルになります。 例えばランレベルが2だった場合は/etc/rc2.dに対してシンボリックリンクを張ることになります。

続いてランレベル0にS96WebCTLicenseのSをKに変えたシンボリックリンクを張ります。 こうしておくことでシャットダウン時にライセンスサーバも同時にシャットダウンしてくれるようになります。

# ln -s /etc/webct/S96WebCTLicense /etc/rc0.d/K96WebCTLicense

サーバを再起動できる環境にあるのであれば、ここまでで一度再起動して、正常にライセンスサーバが起動するか試してみてください。

# shutdown -r now

WebCTサーバを自動起動する

最も単純な方法は/etc/webct/S96WebCT0 のようなシェルスクリプトを自作し、それに対してシンボリックリンクを張ることです。

#!/bin/sh
WEBCT_INSTALL_DIR=/home/webct/webct_root

start() {
    ${WEBCT_INSTALL_DIR}/webct/webctctl start
    exit 0
}
stop() {
    ${WEBCT_INSTALL_DIR}/webct/webctctl stop
    exit 0
}
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
esac
    

WEBCT_INSTALL_DIR=/home/webct/webct_rootはお使いのWebCTのインストールしたディレクトリに合わせる必要があります。 これを作成した後、スクリプトのパーミッションを755のような実行できる値に設定します。

$ chmod 555 /etc/webct/S96WebCT0
以下のようにstart、stopの引数を与えて正しくWebCTが起動、停止できることを確認します。

# 起動
$ /etc/webct/S96WebCT0 start
Cleaning out temp files
Preparing WebCT files
Starting WebCT services:
  Starting Web Server
  Starting WebCT Chat Server
  Starting WebCT Whiteboard Server
  Starting HTML Editor Server

# 停止

$ /etc/webct/S96WebCT0 stop
Stopping WebCT services:
  Stopping Web Server
  Stopping WebCT Chat Server: stopped.
  Stopping WebCT Whiteboard Server: stopped.
  Stopping HTML Editor Server: stopped.

良さそうであれば、以下のようにリンボリックリンクを張ります。ランレベルはライセンスサーバの自動起動で調査したものを与えてください。

# ln -s /etc/webct/S96WebCT0 /etc/rc(ランレベル).d/
# ln -s /etc/webct/S96WebCT0 /etc/rc0.d/K96WebCT0

ここまで良いようであれば再起動します。

一般ユーザで自動起動する

先程までのやりかたで起動するとWebCTがrootで起動されます。 1024より上のポートを利用している場合必ずしもrootで起動する必要はありませんし、rootで起動した場合、一般ユーザでは止められなくなります。

$ /etc/webct/S96WebCT0 stop
Stopping WebCT services:
  Stopping Web Server
httpd (pid 905?) not running
  Stopping WebCT Chat Server: stopped.
  Stopping WebCT Whiteboard Server: stopped.
  Stopping HTML Editor Server: stopped.

これが好ましくない場合は先程のスクリプトを少し修正することで対処できます。 この作業の前にrootでWebCT起動した場合はrootになってWebCTを停止しておいてください。

先程の起動スクリプトを以下のように修正します。

#!/bin/sh
WEBCT_INSTALL_DIR=/home/webct/webct_root
WEBCT_USER=webct

start() {
    su $WEBCT_USER -c "${WEBCT_INSTALL_DIR}/webct/webctctl start"
    exit 0
}
stop() {
    su $WEBCT_USER -c "${WEBCT_INSTALL_DIR}/webct/webctctl stop"
    exit 0
}
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
esac

これをrootで起動してみるなどしてテストし、良いようであれば再起動してテストして下さい。

参考

INSTALLATION AND UPGRADE GUIDE: WEBCT CAMPUS EDITION 4.0 P25

文責: 福山貴幸
(2004年 9月)