есть Ubuntu сервер 16.04 (она виртуализирована - но это не особо важно),
на нее установлен сервак CS 1.6 (игра-стрелялка),
хочется, чтобы игра сама стартовала без моего участия при загрузке ОС и подключений каких-либо к самому серверу, если к примеру сервак перезагрузили или еще что-то случилось,
что я сделал:
1. создал файл cs16 в папке /etc/init.d (содержимое файла ниже)
2. сделал его исполняемым
chmod +x ./somestuff
3. прописал его в каталоги
update-rc.d somestuff defaults
4. пытаюсь его запустить:
sudo service cs16 start
- ничего не происходит, в top его не видно (процесс hlds_run), так же в статусе служб моя служба cs16 со знаком "?", смотрю конкретно мою службу
sudo service cs16 status
получаю:
user@SRV-GAME:~$ sudo service cs16 status
● cs16.service - LSB: Run CS SOGO Server 1.6
Loaded: loaded (/etc/init.d/cs16; bad; vendor preset: enabled)
Active: [color=green]active (exited)[/color] since Пт 2016-07-15 14:41:48 MSK; 34min ago
Docs: man:systemd-sysv-generator(8)
июл 15 14:41:48 SRV-GAME cs16[916]: /etc/init.d/cs16: 26: /etc/init.d/cs16: -pidfile: not found
июл 15 14:41:48 SRV-GAME cs16[916]: /etc/init.d/cs16: 24: cd: can't cd to hlds/server
июл 15 14:41:48 SRV-GAME cs16[916]: /etc/init.d/cs16: 25: /etc/init.d/cs16: ./hlds_run: not found
июл 15 14:41:48 SRV-GAME cs16[916]: /etc/init.d/cs16: 26: /etc/init.d/cs16: -pidfile: not found
июл 15 14:41:48 SRV-GAME cs16[916]: CS Server 1.6 Starting
июл 15 14:41:48 SRV-GAME systemd[1]: Started LSB: Run CS SOGO Server 1.6.
июл 15 14:47:30 SRV-GAME systemd[1]: Started LSB: Run CS SOGO Server 1.6.
июл 15 14:59:18 SRV-GAME systemd[1]: Started LSB: Run CS SOGO Server 1.6.
июл 15 15:00:00 SRV-GAME systemd[1]: Started LSB: Run CS SOGO Server 1.6.
июл 15 15:13:59 SRV-GAME systemd[1]: Started LSB: Run CS SOGO Server 1.6.
5. если же запустить скрипт сам:
sudo /etc/init.d/cs16 start
- то сервер игры стартует и все хорошо работает,
#!/bin/sh
# Запуск CS16 как сервиса при старте ОС
### BEGIN INIT INFO
# Provides: cs16
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Run CS SOGO Server 1.6
# Description: Run CS COGO Server 1.6 (Start, Stop, Restart)
### END INIT INFO
# Author: ****
#
RETVAL=0
path="hlds/server"
start()
{
# if [ -d $path }; then
cd $path
./hlds_run -game cstrike +maxplayers 20 +exec server.cfg +map aim_headshot
# -pidfile cs16.pid&
# touch ./cs16.run
# fi
}
stop()
{
# if [ -f $path/pub1.run ]; then
killall hlds_run
cd $path
# rm -R cs16.pid
# rm -R ./cs16.run
# fi
}
restart()
stop
start
# status()
# {
# cd $path;
# [ -f $path/cs16.pid ]
# }
# case "$1" in
# start)
# start
# echo "CS Server 1.6 Starting"
# ;;
# stop)
# stop
# echo "CS Server 1.6 Stoping"
# ;;
# restart)
# stop
# start
# ;;
# *)
# echo $"Usage: $0 {start|stop|restart}"
# exit 1
# esac
exit $RETVAL
Пользователь добавил сообщение 15 Июля 2016, 15:24:28:
и еще никак не могу побороть статус службы и pid файлы, пишет что файлов pid нет, если раскоментировать их создание и проверки
Пользователь добавил сообщение 15 Июля 2016, 15:28:49:
Правила форума1.4. Листинги и содержимое текстовых файлов следует добавлять в сообщение с помощью тега [spoiler]...[/spoiler], либо прикреплять к сообщению в виде отдельного файла.
--peregrine