I should also mention, I'm going to be releasing a plugin soon that
lets you set a cvar to make -autoupdate exit the game immediately
instead of at map change.

- Neph

On Thu, Jun 5, 2008 at 4:44 PM, Nephyrin Zey <[EMAIL PROTECTED]> wrote:
> Hey guys,
>
> I've written a srcds_run replacement script called 'nemrun' along with
> a helper python script 'srcupdatecheck'. This script is meant to be a
> no-nonsense srcds_run replacement with some advanced features:
> - Able to handle -autoupdate, including on orangebox games and setups
> with ./steam in an unusual place
>
> - Able to update servers that share a install directory:
>   - First server to detect an update on restart (from
> map-change-restart provided by -autoupdate, or due to a manual 'quit'
> or other exit/crash) will 'lock' the directory with an update.lock
> file
>   - Other servers (running in screens) are sent a 'quit' message
>   - Other servers see the first server is updating them and wait for
> it to complete
>     - Script can be configured to retry a failed update x times over y seconds
>   - Other servers periodically make sure the server/runscript doing
> the update hasn't crashed (and take over if so)
>   - Once update has been complete lock is removed and all servers
> restart in unison
>
> - Logs restart/update events into a separate reboot.log file, which
> can be be named statically or given dated names (such as
> rebootlogs/reboot_YYYYMMDDHHmmSS.log)
>
> - Core files can be turned on and named dynamically (again with the
> option of including YYYY/MM/DD/etc datestamps and folder prefixes)
>
> - the '$GAME/downloads' folder can be optionally 'cleaned' upon
> reboot, by deleting orphans (files without associated .ztmp or vice
> versa) as well as all files over X days old.
>
> - (minor) $GAME/addons/bin is added to the bin search path, so you can
> make that folder and put binaries (dll's/so's) for addons/extensions
> in there instead of polluting the bin (or orangebox/bin) folder.
>
> ==
> Because this script must be able to check for updates without actually
> performing the updates (because it might need to kill other servers
> running on the same install path) I have included my 'srcupdatecheck'
> script. This script, which requires Python 2.3+ be installed (it will
> be on most server systems), takes a steam.inf file as input
> (./srcupdatecheck path/to/steam.inf) and sends a packet to the master
> server to see if it is up to date. It is a rather crude method, but
> proves very reliable and quick (can provide an update yes/no in 3
> seconds as opposed to waiting 30+ for the hldsupdatetool, which also
> would go ahead and perform an update without prompting)
>
> ===
>
> REQUIREMENTS:
> - bash (other modern shells probably work, but much of the syntax wont
> work with a standard 'sh' shell. #!/bin/bash is specified in the
> header, so when you run the script from any shell it will
> automatically be put in its own bash sub-instance)
> - Python 2.3-2.5 (others not tested) with standard (regex/socket/etc)
> libraries for srcdsupdatecheck (srcdsupdatecheck required if using
> -autoupdate)
> - A willingness to report bugs to me (this is beta)
>
> You MUST do ./nemrun --help and read the instructions - it uses
> several command line parameters not used in srcds_run.
>
> Latest Beta available here: (you need: nemrun, srcupdatecheck)
> http://www.nephyrin.net/tools/nemrun/latest-beta/
>
> ===
>
> INSTRUCTIONS
> 1. Get nemrun and srcupdatecheck from
> http://www.nephyrin.net/tools/nemrun/latest-beta/
> 2. "chmod +x nemrun srcupdatecheck"
> 3. "./nemrun --help"
>
> Example launch screen (taken from my test server):
>
>   screen -d -m -U -S testing ./nemrun -nemlog
> "runlogs/Testing_%Y%m%d%H%M%S.log" \
>   -cleandownloads 10 -autoupdate -steamdir ../.. -srvdir tfbase \
>   -updatetries 3 -updatedelay 15 -sharedscreens proving,stomping \
>   -corefile "cores/Testing_%Y%m%d%H%M%S.core" \
>   \
>   -game tf +exec testing.cfg -ip 75.125.209.5 -port 27015 \
>   +maxplayers 32 +map pl_goldrush +servercfgfile testing.cfg \
>   +mapcyclefile map_testing.txt +motdfile testingmotd.txt \
>   +sv_logsdir logs_testing +log on \
>   +fps_max 128
>
> THINGS TO NOTE:
> - Note the 'required' command switches when using, say, -autoupdate.
> It wont work without -srvdir / -steamdir set. The script will warn you
> when you set things wrong
> - Both -nemrun and -corefile take 'date' style date strings in
> addition to regular strings. Type "man date" for more information and
> see my example command.
> - 'steamdir' is the path to steam from the server directory or an absolute 
> path.
> - 'srvdir' is the path to the ROOT of the server (if you have
> /path/server/orangebox/tf, the srvdir is '/path/server') FROM the
> steam dir. Both of these can be absolute paths if you want to be safe.
> - 'sharedscreens' is a comma delimited list of other 'screens' (as
> named by "screen -S name") running servers ON THIS SAME INSTALL PATH
> that are USING THIS SAME RUNSCRIPT. You MUST specify these if you want
> updates to work IF you're running multiple servers from the same
> install path, so it knows to kill them before trying to update the
> shared directory. Feel free to message me if this is confusing. For
> instance, if you run servers in screens named "a" "b" and "sam", then
> the server in screen "a" should have "-sharedscreens b,sam" (assuming
> they're all running out of myservers/serverblah/)
>  - Servers in SEPARATE directories/installs should NOT use
> -sharedscreens, as they wont be affected if another server is updating
> its own independant directory.
>
> ==
> CONTACT ME
> with bugs or suggestions or questions or whatever. You may respond to
> this thread, or IM me at:
> Nephyrin (Skype/AIM)
> [EMAIL PROTECTED] (MSN/XMPP(Jabber))
> [EMAIL PROTECTED] (GTalk/XMPP(Jabber))
>
> I'm on nearly 24/7
>
> Remember this is *BETA* quality, I've been using it on my 32x servers
> for some days, but that doesn't guarantee it wont break stuff ;-P
>
> - Neph
>

_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlds_linux

Reply via email to