Невозможно открыть или закрыть порт

Сообщения
9
Реакции
0
Ошибка
В sys_error.log
L 03/12/2020 - 07:58:45: (map "(null)") NET_OpenIP: Couldn't allocate dedicated server IP port 27015.

В debug.log
----------------------------------------------
CRASH: Thu Dec 3 07:46:24 MSK 2020
Start Line: ./hlds_linux -game cstrike +ip МОЙАЙПИ +port 27015 +map fy_pool_day +maxplayers 32 +sys_ticrate 1100 -debug +pingboost 3 -pidfile cs_csdm.pid
[New LWP 7242]
[New LWP 7239]
[New LWP 7238]
[New LWP 7240]
#0 0xf74bbfa7 in ?? ()
End of crash report
----------------------------------------------
ОС
Linux
Amx Mod X
Ответ: 
AMX Mod X 1.9.0.5271 (http://www.amxmodx.org)
Authors:
David "BAILOPAN" Anderson, Pavol "PM OnoTo" Marko
Felix "SniperBeamer" Geyer, Jonny "Got His Gun" Bergstrom
Lukasz "SidLuke" Wlasinski, Christian "Basic-Master" Hammacher
Borja "faluco" Ferrer, Scott "DS" Ehlert
Compiled: Jun 24 2020 13:53:30
Built from: https://github.com/alliedmodders/amxmodx/commit/5eea3e5
Build ID: 5271:5eea3e5
Core mode: JIT+ASM32
Билд
Ответ: 
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
ReHLDS version: 3.7.0.697-dev
Build date: 20:42:34 Jul 24 2020 (2295)
Build from: https://github.com/dreamstalker/rehlds/commit/98db467
ReGamedll
Ответ: 
ReGameDLL version: 5.18.0.474-dev
Build date: 11:07:34 Jul 16 2020
Build from: https://github.com/s1lentq/ReGameDLL_CS/commit/efb06a7
Версия Metamod
Ответ: 
Metamod-r v1.3.0.128, API (5:13)
Metamod-r build: 17:47:54 Aug 24 2018
Metamod-r from: https://github.com/theAsmodai/metamod-r/commit/0cf2f70
Список метамодулей
Ответ: 
Currently loaded plugins:
description stat pend file vers src load unload
[ 1] SafeNameAndChat RUN - SafeNameAndChat.so v1.1 ini ANY ANY
[ 2] Reunion RUN - reunion_mm_i386.so v0.1.0.92c ini Start Never
[ 3] ReAuthCheck RUN - reauthcheck_mm_i386.so v0.1.6 ini Start Never
[ 4] VoiceTranscoder RUN - VoiceTranscoder.so v2020MA1 ini ANY ANY
[ 5] ReSemiclip RUN - resemiclip_mm_i386.so v2.3.9 ini Chlvl ANY
[ 6] Rechecker RUN - rechecker_mm_i386.so v2.5 ini Chlvl ANY
[ 7] AMX Mod X RUN - amxmodx_mm_i386.so v1.9.0.5271 ini Start ANY
[ 8] FakeMeta RUN - fakemeta_amxx_i386.so v1.9.0.5271 pl7 ANY ANY
[ 9] MySQL RUN - mysql_amxx_i386.so v1.9.0.5271 pl7 ANY ANY
[10] Ham Sandwich RUN - hamsandwich_amxx_i386.so v1.9.0.5271 pl7 ANY ANY
[11] CStrike RUN - cstrike_amxx_i386.so v1.9.0.5271 pl7 ANY ANY
[12] Fun RUN - fun_amxx_i386.so v1.9.0.5271 pl7 ANY ANY
[13] Engine RUN - engine_amxx_i386.so v1.9.0.5271 pl7 ANY ANY
[14] ReAPI RUN - reapi_amxx_i386.so v5.15.0.197-dev pl7 ANY Never
[15] AuthEmu RUN - authemu_amxx_i386.so v4.2.12.311-dev+m pl7 ANY Never
[16] ReCSDM RUN - csdm_amxx_i386.so v3.6 pl7 ANY ANY
[17] gRIP RUN - grip_amxx_i386.so v0.1.5 Beta pl7 ANY ANY
[18] CSX RUN - csx_amxx_i386.so v1.9.0.5271 pl7 ANY ANY
[19] GeoIP RUN - geoip_amxx_i386.so v1.9.0.5271 pl7 ANY ANY
[20] SxGeo RUN - sxgeo_amxx_i386.so v2.2 pl7 ANY Never
20 plugins, 20 running
Список плагинов
Ответ: 
Currently loaded plugins:
name version author file status
[ 1] FreshBans 1.4.3b kanagava fresh_bans_143_ running
[ 2] DopBan 2.8.2b kanagava dop_ban2-282-18 running
[ 3] SH_detector 2.5.2e kanagava sh_check.amxx running
[ 4] AIM detector 0.9.4.1b kanagava aim_detector_09 running
[ 5] [1.9.0] AuthEmu API 1.0 Dev-MS Team authemu.amxx running
[ 6] [190] Ultimate Weapons 20.06.06 SKAJIbnEJIb ultimate_weapon running
[ 7] [190] Chat Controller 20.06.06 SKAJIbnEJIb chat_controller running
[ 8] GameCMS_API 5.3.5 zhorzh78 gamecms_api_5.3 running
[ 9] [183] Ultimate Gag 19.11.04BE SKAJIbnEJIb ultimate_gag.am running
[ 10] [ReAPI][183] Ultimate 18.12.22 SKAJIbnEJIb ultimate_gag_re running
[ 11] GameCMS_VipShop 1.7 zhorzh78 gamecms_vipshop running
[ 12] GameCMS_Registration 1.5 zhorzh78 gamecms_registr running
[ 13] GameCMS BonusSystem 1.1 +- DUKKHAZ0R gamecms_bonus_c running
[ 14] [1.9.0] GameCMS Time A 1.4 API_5 zhorzh78 gamecms_time_aw running
[ 15] GameCMS_Achievs_Core 1.3 zhorzh78 gamecms_achievs running
[ 16] GameCMS_Player_Achievs 1.3 zhorzh78 player_achievs_ running
[ 17] GameCMS_Special_Achiev 1.3 zhorzh78 special_achievs running
[ 18] [1.9.0] GameCMS Manage 20.09.16 madlabs GameCMS_Manager running
[ 19] CMS_SkinManager 1.2 zhorhz78 CMS_SkinManager running
[ 20] Frags Exchanger 1.1 ApXuTekToR Frags_Exchanger running
[ 21] [1.9.0] COVID mode 1.0.8 wellasgood Covid_mode.amxx running
[ 22] Shop 1.0 StudenT Shop.amxx running
[ 23] TeamsChanger 1.0 Burberry TeamsChanger.am running
[ 24] Killer screen fade 1.0 Flazh killerscreenfad running
[ 25] [1.9.0] Invisible Spec 20.12.02 ReHLDS Team invisible_spect running
[ 26] Grab+ 1.2.3 Ian Cammarata grab_plus.amxx running
[ 27] Telegram MSG 1.2.0 ex3m777 Telegam_sender. running
[ 28] [183] Map Spawns Edito 17.08.27 iG_os & SKAJIbnE MapSpawnsEditor running
[ 29] [190] Ad From Server 20.06.06 SKAJIbnEJIb ad_from_server. running
[ 30] [183] Parachute RBS 17.12.12 KRoT@L/JTP10181 parachute_rbs.a running
[ 31] [190] Stats Configurat 20.06.06 SKAJIbnEJIb & AM statscfg_rbs.am running
[ 32] [190] StatsX RBS 20.06.06 SKAJIbnEJIb & AM statsx_rbs.amxx running
[ 33] [190] Skill ELO 20.06.06 SKAJIbnEJIb skill_elo.amxx running
[ 34] [190] Army Ranks Ultim 20.06.06 SKAJIbnEJIb army_ranks_ulti running
[ 35] [190] CsStats MySQL 20.06.06 SKAJIbnEJIb csstats_mysql.a running
[ 36] [190] CSDM Lite 20.08.08 SKAJIbnEJIb csdm_lite.amxx running
[ 37] [190] Analizator 20.06.06 SKAJIbnEJIb analizator.amxx running
[ 38] [190] Blind RBS 20.06.06 SKAJIbnEJIb blind_rbs.amxx running
[ 39] [190] Snipers RBS 20.06.06 SKAJIbnEJIb snipers_rbs.amx running
[ 40] [190] CsStats ResetSco 20.06.06 SKAJIbnEJIb csstats_resetsc running
[ 41] [190] MapsMenu RBS 20.06.06 SKAJIbnEJIb & AM mapsmenu_rbs.am running
[ 42] [183] High Ping Kicker 19.11.12 SKAJIbnEJIb hpk_rbs.amxx running
[ 43] [190] AdminCmd RBS 20.06.06 SKAJIbnEJIb & AM admincmd_rbs.am running
[ 44] Menus Front-End 20.06.06 SKAJIbnEJIb & AM amxmodmenu_rbs. running
[ 45] [190] Screen Player 20.06.06 SKAJIbnEJIb screen_player.a running
[ 46] [190] Chat RBS 20.10.24BE SKAJIbnEJIb chat_rbs.amxx running
[ 47] [190] No Team Flash 20.06.06 SKAJIbnEJIb NoTeamFlash.amx running
[ 48] [190] Top Award RBS 20.06.06 SKAJIbnEJIb topaward_rbs.am running
[ 49] [190] AdminChat RBS 20.06.06 SKAJIbnEJIb adminchat_rbs.a running
[ 50] [190] AfkKicker RBS 20.08.02 SKAJIbnEJIb afkkicker_rbs.a running
[ 51] [190] CmdMenu RBS 20.06.06 SKAJIbnEJIb & AM cmdmenu_rbs.amx running
[ 52] [190] ESP RBS 20.06.06 SKAJIbnEJIb & Ko esp_rbs.amxx running
[ 53] [190] Whois RBS 20.06.06 SKAJIbnEJIb whois_rbs.amxx running
[ 54] [190] Kill Assist RBS 20.06.06 SKAJIbnEJIb & Di killassist_rbs. running
[ 55] [190] Admin Mode 20.06.06 SKAJIbnEJIb admin_mode.amxx running
[ 56] [190] CsStats Editor 20.06.06 SKAJIbnEJIb csstats_editor. running
[ 57] [190] BonusMenu RBS 20.06.06 SKAJIbnEJIb bonusmenu_rbs.a running
[ 58] [190] NewYear RBS 20.06.06 SKAJIbnEJIb newyear_rbs.amx running
Сервер находится на vds
Там же ещё крутятся 2 сервера с портами 27014 и 27016 которые запускаются и останавливаются без каких либо проблем.

Краш сервера с портом 27015 появляется когда ты останавливаешь его командой в pytty
C++:
/etc/init.d/cs_csdm.sh stop
и пытаешься запустить
C++:
/etc/init.d/cs_csdm.sh start
но не запускается, в pytty после данной команды пишет
C++:
taskset: failed to get pid 7238's affinity: No such process
и так далее всякие разные ошибки пидов что-ли.
Проблема решается либо перезапуском тачки, либо командами killall hlds_run или вовсе через start/stop по нескольку раз или завершение процкссов через htop

Вообщем незнаю в чём причина :sad: Прошу помочь

Права на папки и каталоги:
C++:
chown -R hlds:hlds /home/csdm/
chmod 755 -R /home/csdm/
Скрипт запуска даного сервера:
C++:
#!/bin/bash
# authors: Puma 
# version: 1.2
#. /lib/lsb/init-functions

#####################################################
# Configuration
#####################################################

server_name="Server CSDM"  #Название сервера
screen_name="cs_csdm"  #Название screen-сессии
use_user="hlds"  #Имя юзера от которого запускается сервер
path="/home/csdm"  #Путь до ROOT-директории сервера (без /в конце)
hlds_ip="МОЙАЙПИ"  #IP сервера ,не ставить 0.0.0.0
hlds_port="27015"  #Порт сервера
hlds_players="32"  #Максимальное количество игроков на сервере
hlds_map="fy_pool_day"  #Имя первоначальной карты при запуске
hlds_options="+sys_ticrate 1100 -debug +pingboost 3"  #Дополнительные параметры запуска
priority="0"  #Приоритет для сервера (-20 - Высокий ;20 - Низкий)
usecore="0"  #Привязка к ядрам (0, 1, 2, 3)
hlds_pid="${screen_name}.pid"  #Имя pid файла сервера
clear_logs="0"  # очишать лог файлы при запуске сервера через скрипт?
clear_cache="0"  # очишать кэши системы перед запуском сервера? # работает только под рутом

checker_cmd="/bin/qstat" #Команда пакета qStat отвечающего за проверку сервера

#####################################################
# End of configuration
#####################################################

if [ ! -x $path/hlds_run ]; then
    printf "${title}${txtred} Set permissions 777 for hlds_run\n"
    chmod -R 777 $path
fi

if [ $use_user == "root" ]; then
    start1=""
else
    start1="sudo -u ${use_user}"
fi

txtwht='\e[0;37m' # White
txtgrn='\e[0;32m' # Green
txtylw='\e[0;33m' # Yellow
txtred='\e[0;31m' # Red
title="${txtwht}[${txtgrn}${hlds_ip}:${hlds_port}${txtwht}]"

# check screen pid: ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'
# check hlds pid: ps -ef | grep hlds_ | grep -v hlds_run | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'

start() {
    if [ "`ps -ef | grep SCREEN | grep $screen_name | grep $hlds_ip | grep $hlds_port | grep -v grep | wc -l`" -gt 0 ]; then
        if [ "`ps -ef | grep hlds_ | grep -v hlds_run | grep $hlds_ip | grep $hlds_port | grep -v grep | wc -l`" -gt 0 ]; then
            printf "${title} Server ${server_name} already started\n"
            exit 1
        fi
    fi
    cd ${path}
    if [ ${clear_logs} == 1 ]; then
        ${start1} rm -f ${path}/debug.log
        ${start1} rm -f ${path}/cstrike/qconsole.log
        ${start1} rm -fr ${path}/cstrike/logs/*.log
        ${start1} rm -fr ${path}/cstrike/addons/amxmodx/logs/*.log
        printf "${title} Server logs cleared\n"
    fi
    if [ ${clear_cache} == 1 ] && [ ${use_user} == "root" ]; then
        echo 3 > /proc/sys/vm/drop_caches
        printf "${title} Cache && buffers cleared\n"
    fi
    printf "${title} Starting ${server_name}\n"
    /usr/bin/screen -AmdS ${screen_name} ${start1} ./hlds_run -game cstrike +ip ${hlds_ip} +port ${hlds_port} +map ${hlds_map} +maxplayers ${hlds_players} ${hlds_options} -pidfile ${hlds_pid}
    sleep 3
    ${start1} taskset -pc ${usecore} `cat ${path}/${hlds_pid}` > /dev/null
    ${start1} renice -n ${priority} -p `cat ${path}/${hlds_pid}` > /dev/null
    if [ "`ps -ef | grep hlds_ | grep -v hlds_run | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'`" = "`cat $path/$hlds_pid`" ]; then
        printf "${title} Server successfully started! :)\n"
    else
        printf "${title}${txtred} Server crashed on start :(\n"
    fi
}

kill_process() {
    if [ "`ps -ef | grep hlds_ | grep -v hlds_run | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | wc -l`" -gt 0 ]; then
        printf "${title} Kill: `ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep`\n"
        ${start1} kill -9 "`ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'`"
        ${start1} rm -f ${path}/${hlds_pid}
    else
        printf "${title}${txtylw} Cannot kill hlds process of ${server_name} server\n"
    fi
}

stop() {
    if [ "`ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}' | wc -l`" -eq 1 ]; then
        /usr/bin/screen -dr `ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'`.${screen_name} -p 0 -X eval "stuff "quit""
        /usr/bin/screen -dr `ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'`.${screen_name} -p 0 -X eval "stuff "$(printf \\r)""
        sleep 1
        ${start1} rm -rf ${path}/${hlds_pid}
       
        if [ "`ps -ef | grep hlds_ | grep -v hlds_run | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | wc -l`" -gt 0 ]; then
            printf "${title}${txtred} Server not stopped!\n"
        else
            printf "${title} Server has been stopped\n"
        fi
    else
        printf "${title}${txtylw} Cannot stop server ${server_name}, screen session not found!\n"
    fi
}

status() {
    printf "${title} Get status of server ${server_name}\n"
    ${start1} ${checker_cmd} -retry 3 -interval 2 -a2s ${hlds_ip}:${hlds_port} | grep ${hlds_ip}
    exit 1
}

console() {
    if [ "`ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | wc -l`" -gt 0 ] && [ "`ps -ef | grep hlds_ | grep -v hlds_run | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'`" = "`cat ${path}/${hlds_pid}`" ]; then
        printf "${title} Connecting to ${server_name} server console\n"
        printf "${title}${txtylw} For exit from console press Ctrl+A,D\n"
        printf "${title}${txtylw} Don't press Ctrl+C\n"
        sleep 1
        /usr/bin/screen -wipe > /dev/null
        /usr/bin/screen -dr `ps -ef | grep SCREEN | grep ${screen_name} | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'`.${screen_name}
    else
        printf "${title}${txtred} Cannot connect to ${server_name} server console, server not started!\n"
    fi
}

checker() {
    time=`date +%X`
    date=`date +%D`
   
    if [ -f ${checker_cmd} ]; then
        if [ ! -x ${checker_cmd} ]; then
            printf "${title}${txtred} Check run privileges of ${checker_cmd}\n"
            exit 1
        fi
    else
        printf "${title}${txtred} Check qstat/quakestat binar\n"
    fi
   
    checknoresp=`${checker_cmd} -retry 5 -interval 2 -a2s ${hlds_ip}:${hlds_port} | grep response`
    if [ -n "${checknoresp}" ]; then
        printf "${title} ${server_name} server is: ${txtred}[NO RESPONSE]\n"
        printf "[${time} - ${date}] *[NO RESPONSE]* ${checknoresp}\n" >> $path/checker.log
        kill_process
        sleep 1
        start
        sleep 1
        printf "StartUP ${title}:" >> ${path}/checker.log
        if [ "`ps -ef | grep hlds_ | grep -v hlds_run | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'`" = "`cat $path/$hlds_pid`" ]; then
            printf " *[OK]* \n" >> ${path}/checker.log
        else
            printf " *[FAILED]* \n" >> ${path}/checker.log
        fi
        exit 1
    fi
   
    checkdown=`${checker_cmd} -retry 5 -interval 2 -a2s ${hlds_ip}:${hlds_port} | grep DOWN`
    if [ -n "${checkdown}" ]; then
        printf "${title} ${server_name} server is: ${txtred}[DOWN]\n"
        printf "[{$time} - ${date}] *[DOWN]* ${checkdown}\n" >> ${path}/checker.log
        start
        sleep 1
        printf "StartUP ${title}:" >> ${path}/checker.log
        if [ "`ps -ef | grep hlds_ | grep -v hlds_run | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'`" = "`cat $path/$hlds_pid`" ]; then
            printf " *[OK]* \n" >> ${path}/checker.log
        else
            printf " *[FAILED]* \n" >> ${path}/checker.log
        fi
        exit 1
    fi
   
    checkup=`${checker_cmd} -retry 5 -interval 2 -a2s ${hlds_ip}:${hlds_port} | grep cstrike`
    if [ -n "${checkup}" ]; then
        printf "${title} ${server_name} server is: ${txtgrn}[OK]\n"
        printf "[${time} - ${date}] *[OK]* ${checkup}\n" >> ${path}/checker.log
    fi
    if [ "`ps -e -o pid,cpuid,nice,cmd | grep hlds_ | grep -v SCREEN | grep -v grep | grep -v sh | grep -v hlds_run | grep ${hlds_ip} | grep ${hlds_port} | awk '{print $3}'`" != ${priority} ]; then
        if [ "`ps -ef | grep hlds_ | grep -v hlds_run | grep ${hlds_ip} | grep ${hlds_port} | grep -v grep | awk '{print $2}'`" = "`cat $path/$hlds_pid`" ]; then
            printf "${title}${txtylw} ${server_name} server priority is changed because server is crashed\n"
            ${start1} taskset -pc ${usecore} "`cat ${path}/${hlds_pid}`" > /dev/null
            ${start1} renice -n ${priority} -p "`cat ${path}/${hlds_pid}`" > /dev/null
        else
            printf "${title}${txtylw} ${server_name} server priority cant be restore because not found pidfile!\n"
        fi
    else
        printf "${title} ${server_name} server priority is good!\n"
    fi
}

case "$1" in
    start)
        start
    ;;
    stop)
        stop
    ;;
    restart)
        stop
        kill_process
        sleep 2
        start
    ;;
    status)
        status
    ;;
    console)
        console
    ;;
    checker)
        checker
    ;;
    *)
    printf "${title} How to use: ${txtgrn}$0 {start|stop|restart|status|console|checker}${txtwht}\n"
    exit 1
esac
 

RockTheStreet

Саппорт года
Сообщения
1,743
Реакции
344
Помог
40 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
taskset: failed to get pid 7238's affinity: No such process
Никогда не поверю в то, что это вся информация. Выше этой строки должна быть сама ошибка, а это лишь конечный результат.
 

RockTheStreet

Саппорт года
Сообщения
1,743
Реакции
344
Помог
40 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Сообщения
20
Реакции
26
Evgen22, внешний в твоем случае, это тот, который даёт хостер, т.е. например 123.123.123.144. Внутренний, т.е. за натом может быть 192.168.0.15 например. Вот его и нужно вписать.

Код:
ip addr show
даст список всех интерфейсов и адресов, которые им назначены. Скорей всего нужный будет в диапазоне 192.168.х.х, и обзываться eth0, вот его и нужно прописать.
 
Сообщения
9
Реакции
0
TehGaia, нашёл, если я его поставлю в скрипт запуска, тогда на каком ip адресе запустится?
Например сейчас у меня в скрипте запуска 62.122.225.25:27015 а eth0 62.122.225.64
 
Сообщения
20
Реакции
26
Evgen22, запустится на локальном. Дальше дело за чудесами маршрутизации, и если порт 27015 у хостера открыт и привязан именно к 62.122.25.64, то всё будет работать, т.е. адрес для игроков будет 62.122.225.25:27015, если конечно он и на сервере ничем не закрыт. Если нет, то писать хостеру.
 
Сообщения
64
Реакции
131
Помог
4 раз(а)
TehGaia, это арена, там нет локального IP

Судя по ошибке при stop порт 27015 не освободился
Вводи под рутом
netstat -nlup | grep 27015
В последнем столбике будет PID, тебе нужны будут только цифры
Далее вводи
kill -9 PID

Пример
Код:
root@test:~# netstat -nlup | grep 27015
udp        0      0 127.0.0.1:27015    0.0.0.0:*                           13211/./hlds_linu
root@test:~# kill -9 13211
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу