Title: Linuxの自動起動/停止スクリプト

Linux 環境で TeamPage を自動的に起動/停止させるためのスクリプトは、TeamPage がインストールされた server ディレクトリ配下の次のファイルです。

extras/scripts/S99Traction

メモ: 同一のコンピュータで複数の TeamPage を稼動させる場合、TeamPage の数だけスクリプトのコピーし、各スクリプトで stopurl を使う必要があります。



ここでは、TeamPage を /opt/teampage にインストールしたものとして解説します。

管理者 (root) で TeamPage を起動するには



TeamPageをインストールしたホストに root でログインし、S99Traction ファイルを /root へコピーしてください。

# cp /opt/teampage/traction/server/extras/scripts/S99Traction ~/


vi などのエディタでファイルを開いて、次の部分を編集します。

TRACTION_PROGRAM=./TractionDaemon
TRACTIONDIR=/home/Traction/traction/server
TRACTIONUSER=root
LOGFILE=traction.out


※1:TRACTION_PROGRAM は TeamPage を起動するコマンドで、通常は TractionDaemon で問題ありません。
※2:TRACTIONDIR は、TeamPage の server ディレクトリのフルパスを指定します。
※3:TRACTIONUSER は、TeamPage を起動するシステムユーザー名です。TeamPage のユーザーではなく、Linux のユーザーのことです。
※4:LOGFILE は traction.out のままで構いません。このファイルには、起動コマンド(ここでは TractionDaemon)が吐き出すメッセージが記録されます。

次のようにして、TeamPage が起動することを確認します。

# ~/S99Traction start


一般ユーザーで TeamPage を起動するには



root 以外の一般ユーザーで TeamPage を起動できるようにするには以下のようにします。

一般ユーザーの作成



システムに TeamPage 起動用の一般ユーザーを作成します。(※未作成の場合)

ここでは tpuser という一般ユーザーで TeamPage を運用することを想定して記載します。

ユーザー tpuser を作成します。シェルは必要ないので /sbin/nologin を充てています。

# useradd -s /sbin/nologin tpuser


ログイン用パスワードを設定します。

# passwd tpuser
Changing password for user tpuser.
New UNIX password: XXXX (表示されない)
Retype new UNIX password: XXXX (表示されない)
passwd: all authentication tokens updated successfully.


所有権の変更



TeamPage の関連ファイルや関連ディレクトリを全て tpuser ユーザーの所有にします。

TeamPage を root 権限でインストールした場合、インストールされたファイルやディレクトリの所有者が root になり、一般ユーザーで起動できません。そこで、それらの所有者を一般ユーザーに変更します。

下記は、/home/tpuser/example 以下に TeamPage をインストールしたとして、配下の関係する全てのファイルやディレクトリの所有権を teampage に設定する例です。

# chown -R teampage:teampage /home/Traction/example


起動スクリプトの編集



S99Traction スクリプトを適当なディレクトリにコピーして、vi などのテキストエディタで開きます。編集する部分は上記の「rootでTeamPageを起動する場合」とほぼ同じですが、 TRACTIONUSER 行を一般ユーザー(ここでは tpuser)にします。

TRACTION_PROGRAM=./TractionDaemon
TRACTIONDIR=/home/tpuser/example/traction/server
TRACTIONUSER=tpuser
LOGFILE=traction.out


確認



S99Traction スクリプトを実行します。ps aux コマンドなどで、ユーザー tpuser で TeamPage が動作していることを確認します。

# ./S99Traction start


TeamPage を終了させるには



S99Traction スクリプトの stop パラメーターを指定すると、TeamPage のプロセスに対して kill -2 が実行されます。

# ./S99Traction stop


通常、このシグナルを受けると TeamPage はシャットダウンを開始しますが、CentOS 7 などいくつかの環境ではシャットダウンが始まらない場合があります。



この場合は、S99Traction スクリプトを vi などのテキストエディタで開き、次の赤い字の部分を青い字のように変更してください。(kill コマンドの -2 パラメーターを -15 に変更します。)



変更前

kill -2 ${traction_thread_pid}


変更後

kill -15 ${traction_thread_pid}


または、TeamPage の Java プロセスに対して直接 kill -15 または kill -2 を実行してください。



# kill -15 TeamPageJavaPID


システム起動時に TeamPage を自動起動させるには



上記のように、スクリプトによる TeamPage の起動と終了を確認した後、必要に応じて TeamPage をシステム起動時に自動的に実行するデーモンとして登録します。

スクリプトのコピー



S99Traction スクリプトを /etc/rc.d/init.d へコピーします。

# cp /root/S99Traction /etc/rc.d/init.d


スクリプト名の変更



スクリプトの名前を変更します。ここでは識別しやすいように「traction」としています。

# cd /etc/rc.d/init.d
# mv S99Traction traction


パーミッションの変更



スクリプトには TeamPage のサーバー管理者のパスワードが書かれていることもあり、一般ユーザーが中を見られない方が安全です。そこで、root ユーザーのみがアクセスできるようにします。

# chmod 700 traction


自動起動デーモンとして登録



chkconfig コマンドを用いて登録します。

# chkconfig --add traction 


登録の有無を確認します。一般的には run レベルの 3 と 5 で on になっていれば大丈夫です。

# chkconfig --list | grep traction
traction 0:off 1:off 2:off 3:on 4:off 5:on 6:off


確認



システムを再起動し、TeamPage が自動的に起動することを確認します。



関連記事
Article: DocJp78 (permalink)
Date: 2009/09/02; 14時47分47秒 JST

Author Name: TeamPage サポート
Author ID: jpbo