Няма да качвам файловете а направо ще напиша скрипта макар то да е дълъг.
Скрипт:
"#!/bin/sh
### BEGIN INIT INFO
# Provides: csservers
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
# This script edit by kostov[Virtual.New.BG]
# Server options
TITLE='Counter-Strike Dedicated Server'
SESSION='hlds'
DAEMON='hlds_run'
DIR='/home/slidenew2'
USER='root'
# Game options
IP='213.145.104.230'
PORT='37015'
MAP='slide_kzfr_woodslide'
GAME='cstrike'
PLAYERS='5'
TICRATE='580'
PINGBOOST='2'
SVLAN='0'
RCON=''
# Server options string
OPTS="-game $GAME +ip $IP +maxplayers $PLAYERS +map $MAP -port $PORT +sv_lan $SVLAN +rcon_password $RCON +sys_ticrate $TICRATE -pingboost $PINGBOOST -master -noipx -nojoy +log off -pidfile $DIR/$GAME/$SESSION.pid"
# Screen command
CURRENT_USER=$(/usr/bin/whoami)
if [ "$CURRENT_USER" = "$USER" ]; then
INTERFACE="/usr/bin/screen -A -m -d -S $SESSION"
else
INTERFACE="sudo -u $USER /usr/bin/screen -A -m -d -S $SESSION"
fi
service_start() {
if [ -f $DIR/$GAME/$SESSION.pid ] || [ -f $DIR/$GAME/$SESSION-screen.pid ]; then
if [ "$(ps -p `cat $DIR/$GAME/$SESSION.pid` | wc -l)" -gt 1 ]; then
echo -e "Cannot start $TITLE. Server is already running."
else
if [ "$(ps -p `cat $DIR/$GAME/$SESSION.pid` | wc -l)" -gt 1 ]; then
kill -9 `cat $DIR/$GAME/$SESSION-screen.pid`
echo "Killing process ID $id"
echo "Removing $TITLE screen pid file"
rm -rf $DIR/$GAME/$SESSION-screen.pid
break
fi
if [ -f $DIR/$GAME/$SESSION-screen.pid ]; then
rm -rf $DIR/$GAME/$SESSION-screen.pid
fi
echo "Removing $TITLE pid file"
rm -rf $DIR/$GAME/$SESSION.pid
screen -wipe 1> /dev/null 2> /dev/null
service_start
fi
else
if [ -x $DIR/$DAEMON ]; then
echo "Starting $TITLE"
cd $DIR
$INTERFACE $DIR/$DAEMON $OPTS
sleep 15
ps -ef | grep SCREEN | grep "$SESSION" | grep -v grep | awk '{ print $2}' > $DIR/$GAME/$SESSION-screen.pid
echo "$TITLE screen process ID written to $DIR/$GAME/$SESSION-screen.pid"
echo "$TITLE server process ID written to $DIR/$GAME/$SESSION.pid"
echo "$TITLE started."
chmod 666 $DIR/$GAME/*.pid #1> /dev/null 2> /dev/null
chown $USER $DIR/$GAME/*.pid #1> /dev/null 2> /dev/null
sleep 15
fi
fi
}
service_stop() {
if [ -f $DIR/$GAME/$SESSION.pid ] || [ -f $DIR/$GAME/$SESSION-screen.pid ]; then
echo "Stopping $TITLE"
for id in `cat $DIR/$GAME/$SESSION-screen.pid`
do kill -9 $id
echo "Killing process ID $id"
echo "Removing $TITLE screen pid file"
rm -rf $DIR/$GAME/$SESSION-screen.pid
break
done
echo "Removing $TITLE pid file"
rm -rf $DIR/$GAME/$SESSION.pid
screen -wipe 1> /dev/null 2> /dev/null
echo "$TITLE stopped."
else
echo -e "Cannot stop $TITLE. Server is not running."
fi
}
service_watch() {
if [ `screen -wipe | grep $SESSION | grep -v grep | awk '{ print $2 }'` == '(Attached)' ]; then
echo -e "Someone is already attached to the console of the server.\n Might want to check who"
else
screen -r $SESSION
fi
}
case "$1" in
'start')
service_start
;;
'stop')
service_stop
;;
'restart')
service_stop
sleep 10
service_start
;;
'watch')
service_watch
;;
*)
echo "Usage $0 start|stop|restart|watch"
esac
exit 0
"
Това е скрипта,който ми трябва за сървърите.
Ето и упътване как се прави и как се вкарва в линукса.
"За Debian базираните:
Код:
apt-get install screen
За RedHat базираните
Код:
yum install screen
2. Правите файл с някакво име в папката /etc/init.d
Код:
nano /etc/init.d/classic
3. Слагате в него съдържанието и го настройвате:
Код:
TITLE='Counter-Strike Dedicated Server' - Най-добре е тук да сложите името на сървъра ви (За да не се бъркате)
SESSION='hlds' - Името на сесията, чрез която по-късно ако ви се наложи да влезнете в конзолата на сървъра
DAEMON='hlds_run' - Името на демота който ще стартирате (Както обикновено той е hlds_run)
DIR='/home/hlds' - Пътя до директорията на сървъра
USER='root' - Под какъв потребител да върви сървъра (Препоръчително е да си остане root)
# Game options
IP='127.0.0.1' - Ип-то на сървъра през което той да тръгне
PORT='27015' - Порта на сървъра
MAP='de_dust2' - Стартиращата карта (С коя карта да тръгне сървъра)
GAME='cstrike' - Коя модификация искате да пуснете (За CS - cstrike. За Half-Life - valve)
PLAYERS='21' - Колко максимални играча да има сървъра
TICRATE='600' - sys_ticrate на сървъра
PINGBOOST='2' - Буустера на сървъра възможности 1, 2 или 3
SVLAN='0' - sv_lan опцията
RCON='' - И rcon паролата (Ако не искате такава оставете това празно)
4. След като сте настроили сървъра е време да му зададем права:
Код:
chmod +x името-на-файла
Пример:
Код:
chmod +x classic
5. Сега време да вкараме скрипта в процесите на Linux-а за Debian базирани:
Код:
update-rc.d името-на-файла defaults 99
Пример:
Код:
update-rc.d classic defaults 99
5. Сега време да вкараме скрипта в процесите на Linux-а за RedHat базирани:
Код:
chkconfig --level 345 името-на-файла on
Пример:
Код:
chkconfig --level 345 classic on
"
Всички стъпки ги знам на изуст и не мисля,че ги бъркам.
Пак казвам само единия скрипт ми стана а другите не.
Ако можеш да ми кажеш с моя скрипт стъпки по-твоя начин как ще стане,за да мога да се ориентирам още..