I downloaded the LogJam LiveJournal client for Linux. There was even pre-compiled binaries for Fedora Core 3. Started right up! I use Semagic for my Windows client. Semagic is a little more feature rich than LogJam. LogJam seems perfectly capable though. One noticeable problem, no spell check in LogJam. Eeek!
I have been doing another Linux related project. I came up with a flexible check script for a game server. This script will not only notify you when your server crashes, but will also notify if the server “hangs”. My definitions: A crash means the server process is no more. A hang means that the server process is still listed and taking up resources, just that the server is unresponsive. I commented out some lines in the script that actually restarted the game server once it took it down. The lines of code work, just that you won’t have console input/ouput because the script starts the server in the background.
One catch in this script is that you must install qstat for it to work. The script uses qstat to “ping” the server. You will need a working knowledge of qstat to get this script up and running.
#! /bin/sh user_to_mail="email@example.com" serv_path="/home/steam/hl2server/" serv_name="srcds_run" serv_arg="-console -game cstrike +maxplayers 7 +map de_dust +log on" serv_ip="127.0.0.1" serv_port="27015" qstat="/usr/local/bin/qstat/qstat" qstat_arg="-hl2s" tf1="/home/steam/hl2_qstat.log" while [ 1 ]; do $qstat $qstat_arg $serv_ip:$serv_port > $tf1 greptest=`grep "no response" $tf1` if [ "$greptest" == "" ]; then greptest=`grep "DOWN" $tf1` fi # echo "$greptest" if [ "$greptest" != "" ]; then echo "One _no response_ at "$(date +%c)". Will test again in 20 seconds" # test again in case switching maps or something similar. sleep 20 $qstat $qstat_arg $serv_ip:$serv_port > $tf1 greptest=`grep "no response" $tf1 ` if [ "$greptest" == "" ]; then greptest=`grep "DOWN" $tf1` fi if [ "$greptest" != "" ]; then echo "Killing process at :"$(date +%c) /sbin/fuser -k $serv_path$serv_name sleep 10 # The following lines start the server, but you will not have console access. # Best to start the server manually in another xterm. # echo "Starting server at :"$(date +%c) # cd $serv_path # ./$serv_name $serv_arg & if [ $user_to_mail != "" ]; then echo "Your POS server went down at "$(date +%c) | mail -s "$serv_name failed" $user_to_mail fi fi fi echo "Server pinged by script at "$(date +%c) sleep 40 done