Update:
These shutdown were when I wasn't back home. I sometimes check GamesTracker website to check if my server is alive. If it's DEAD I also check console log and type this command:
PHP Code:
echo -e '\xff\xff\xff\xffgetstatus' | netcat -u 89.36.219.214 28960
If it's gave me no output at all, I suggested that server was dead and I remotely restart it.
Today I had some time to play. I was playing for about 30 mins, checked gamestracker and it says that server is down and that the last scan was 10 mins ago. I was quite suprised so typed above command and yeah, it gave me nothing despite I was playing server with other players and more has came. Server was listed in call of duty's server list and disconnecting/connecting went without any problems.
Who knows, maybe there were no shutdowns at all and I was remotely restarting the server because of getstatus null response :P
Is there any known getstatus bug?
Edit:
This http://killtube.org/showthread.php?2...ll=1#post11571 might be related if I use something like this? :
numberofplayers.sh
PHP Code:
#!/bin/bash
/home/codserver2/testscript
/home/codserver/testscript
testscript
PHP Code:
#!/bin/bash
#Execute starttest (tmux script) which uses echo getstatus of 'spected' server
#It is executed as linux user "codserver"
su --login codserver2 --command "/home/codserver/starttest"
#starttest has an infinite loop
#Added short time sleep to make sure starttest made whole dump
sleep 2
#Kill this infinite loop for fuck sake!
su --login codserver2 --command "/home/codserver/stoptest"
#Our starttest saved his output to an 'output' file
#Here we are couting lines in output file and saving as variable
players="$(wc -l /home/codserver2/output | awk '{print $1}')"
#Executing php file with our variable as a parameter
php /home/codserver2/players_num.php $players
#Delete this temporary file
#rm /home/codserver2/output
starttest
PHP Code:
tmux new-session -d -s codcheck2 "echo -e '\xff\xff\xff\xffgetstatus' | netcat -u 89.36.219.214 28960 > /home/codserver2/output"
stoptest
PHP Code:
tmux kill-session -t codcheck2
players_num.php
PHP Code:
<?php
$number = $argv[1];
$server_ip = '89.36.219.214';
$server_port = '28961';
$server_timeout = 10;
$number2 = (int)$number;
$number2 = $number2 - 2;
$server_addr = "udp://" . $server_ip;
@$connect = fsockopen($server_addr, $server_port, $re, $errstr, $server_timeout);
if (! $connect)
{
echo 'Not working 1';
}
socket_set_timeout ($connect, $server_timeout);
$server_rconpass = 'HEREISMYRCONPASS';
$server_extra_wait = false;
$server_extra_footer = true;
$server_buffer_results = 2048; // enter a number of bytes; decrease if you receive only a part of returned results, increase to speed up
$server_buffer_cur = $server_buffer_results;
$cmd = "say Server Status: ^9crack_hj_tdm^6!^3.. ^7" . $number2 . "/20 players.";
//global $server_rconpass, $connect, $server_extra_wait, $server_buffer_cur, $server_extra_footer;
$send = "\xff\xff\xff\xff" . 'rcon "' . $server_rconpass . '" '.$cmd.(($server_extra_footer)?"\n":'');
fwrite($connect, $send);
$output = (($server_extra_wait)?(fread ($connect, 1)):'');
do {
$status_pre = socket_get_status ($connect);
if ((($server_extra_wait) && ($output != '')) || (! $server_extra_wait))
$output .= fread ($connect, $server_buffer_cur);
$status_post = socket_get_status ($connect);
} while ($status_pre['unread_bytes'] != $status_post['unread_bytes']);
return $output;
fclose($connect);
?>
It's added in crobtab and spams nearly every 3 mins. Maybe GameTracker's getstatus is sometimes executed in same time as my numberofplayers.sh script?