eスポーツ、FPS、MOBA、ゲーミングデバイスの最新情報を紹介する個人ニュースサイト

サーバースクリプト

利点

  • 起動、終了、設定が楽
  • コンソールの管理がscreenでできる

制御スクリプト

http://www.counter-strike.de/hlinside/server/hlds
negitaku.orgサーバーはここのスクリプトを使っている。

#!/bin/sh

PATH=/bin:/usr/bin:/sbin:/usr/sbin
DIR=/home/bot/games/hlds_l
DAEMON=$DIR/hlds_run
# LAN-server:
#PARAMS=”-game cstrike -nomaster -insecure +sv_lan 1 +maxplayers 16 +map de_dust2 +logsdir logs1 -pingboost 1″
# Internet-server:
PARAMS=”-game cstrike -pingboost 1 -port 27016 +exec negitaku.cfg”
NAME=cstrike2
DESC=”CounterStrike dedicated server”

case “$1” in
start)
echo “Starting $DESC: $NAME”
cd $DIR
screen -d -m -S $NAME $DAEMON $PARAMS
;;

stop)
if [[ `screen -ls |grep $NAME` ]]
then
echo -n “Stopping $DESC: $NAME”
kill `screen -ls |grep $NAME |awk -F . ‘{print $1}’|awk ‘{print $1}’`
echo ” … done.”
else
echo “Coulnd’t find a running $DESC”
fi
;;

restart)
if [[ `screen -ls |grep $NAME` ]]
then
echo -n “Stopping $DESC: $NAME”
kill `screen -ls |grep $NAME |awk -F . ‘{print $1}’|awk ‘{print $1}’`
echo ” … done.”
else
echo “Coulnd’t find a running $DESC”
fi

echo -n “Starting $DESC: $NAME”
cd $DIR
screen -d -m -S $NAME $DAEMON $PARAMS
echo ” … done.”
;;

*)
echo “Usage: $0 {start|stop|restart}”
exit 1
;;
esac

exit 0

negitaku.cfg

servercfgfilenegi.cfg
motdfile negi.txt
mapcyclefile ncycle.txt
logsdirlogs2
mapde_dust2
maxplayers 21

設定

まずスクリプトを適当な名前で保存。 そして下の3行の部分を、自分の環境に合わせて書き換える。
screenコマンドが必要なので、無ければインストールする。

  • DIR=/home/bot/games/hlds_l
  • PARAMS=”-game cstrike -pingboost 1 -port 27016 +exec negitaku.cfg”
  • NAME=cstrike2

DIRはhldsをインストールした場所、PARAMSはhldsへのオプション、 -portは他のHLDSと被ってはいけない。
NAMEはscreenで使う名前。2個以上のhldsを使う場合はNAMEも別のものにしないといけない。

+で始まるコマンド(map、maxplayers)は別のconfigに書いたほうが綺麗に書ける。
ただし、起動時にしか設定できないものを設定するので、
+execでそのcfgを起動時に 読み込んでやらないといけない。
ここではnegitaku.cfgがそれにあたる。

servercfgfileなどはデフォルト以外のファイルを使う場合の設定で、
2個以上のHLDSを動かす場合に必要。指定しないと同じ設定(server.cfg)になってしまうし、
同じログディレクトリ(logs)になってしまっていろいろと面倒だ。
設定が済んだら、スクリプトをcs2というファイルで保存したとすると同じディレクトリにいて

chmod 755 cs2

として、実行できるようにする必要がある。
Windowsで作ってファイルを転送する場合は、改行コードをLFで保存するか、
FTP時にASCIIモードで転送しなければならない。

使い方

スクリプトをcs2というファイルで保存したとして、パスを通してあれば
cs2 start
cs2 stop
cs2 restart

これで起動、終了、リスタートができる。 NAMEで設定した名前がcstrike2だとすると
screen -r cstrike2
でHLDSのコンソールをアタッチすることができる。 コンソールからのデタッチは
CTRL-a d

この記事を書いた人
Negitaku.org 運営者(2002年より)。Counter-Strikeシリーズ、Dota 2が大好きです。 じゃがいも、誤字脱字を見つけるのが苦手です。

https://twitter.com/YossyFPS/
SNSでフォローする
YouTube

取材動画、ポッドキャスト等配信中。チャンネル登録をお願いします!


アフター6ジャンクション出演時アーカイブ