Skip to content

Instantly share code, notes, and snippets.

@Jenetrix
Created July 1, 2021 19:08
Show Gist options
  • Save Jenetrix/31dec5c7388f8c7a32a84f15a9c8729b to your computer and use it in GitHub Desktop.
Save Jenetrix/31dec5c7388f8c7a32a84f15a9c8729b to your computer and use it in GitHub Desktop.
Starsiege dedicated server launch script
#!/bin/bash
######################################
## Starsiege Server Launch Script ##
## Authors: Jen & Alyssa ##
## Last Modified 01/26/2019 ##
######################################
# set -x
for filename in server_*.cs; do
echo "Launching $filename"
tmp_name=$(echo $filename | sed -e "s/server_//g" -e "s/\.cs//g" -e "s/campaign_//g")
screen -d -S $tmp_name -m wineconsole --backend=curses Starsiege.exe -s ${filename}
sleep 1
done
echo "Kill useless wine services"
pkill -9 winedevice.exe
pkill -9 plugplay.exe
pkill -9 explorer.exe
pkill -9 services.exe
echo "Wait for 10 seconds"
sleep 10
IFS=$'
'
thinglist=($(ps aux | grep -i "[0-9] Starsiege.exe.*\.cs"))
echo $thinglist[@]
for i in ${thinglist[@]}; do
tmp_pid=$(echo "$i" | awk '{print $2}')
tmp_name=$(echo "$i" | awk '{print $13}' | sed -e "s/server_//g" -e "s/\.cs//g" -e "s/campaign_//g")
echo "Limiting ${i}"
cpulimit -l 3 -p ${tmp_pid} &
echo
sleep 1
done
unset IFS
echo "Waiting 48h before relaunching launch.sh"
sleep 48h
echo Killing Starsiege Gameservers
pkill -9 Starsiege
echo Relaunching servers
./launch.sh &
exit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment