UGCC on Linux

Post Reply
Masher
Site Admin
Posts: 3612
Joined: Thu Apr 20, 2006 2:54 pm
Location: America's Heartland
Contact:

UGCC on Linux

Post by Masher »

All other documentation applies to Linux as well as Windows except for documentation related to web server setup/install. Please be sure to review the other documentation. After getting xsp2 or apache configured--continue with configuring the panel. FreeBSD users please see these additional notes.

Requirements
  • Should work with most versions of Linux. *BSDs can't run the panel, but should work fine with the monitor.
  • You'll need mono: http://www.mono-project.com. You can download the source and build it, or install your distro's package. Tested against 1.9, therefore that version or greater is recommended.
  • You have two options for hosting the panel. You can use apache with the mod_mono apache module: http://www.mono-project.com/Mod_mono or you can use xsp2, included in the mono package.
  • Xsp2 a simplistic web server, it works great and is easy to setup: http://www.mono-project.com/ASP.NET#ASP ... g_with_XSP
  • You'll need P7zip (http://sourceforge.net/projects/p7zip) to support archive info/decompression of archives on Linux. Build it yourself or get your distro's package.
If using mod_mono permissions still need to be configured for the game servers. Man or google chown, chgrp, chmod for help.

What works, what doesn't, and other limitations
  • Almost all of the features supported under windows are supported under Linux.
  • Setting process priorities to anything above normal doesn't work if running as a non-root user.
  • MySQL and SQLite databases are both supported on Linux.
  • CPU monitoring currently is not supported.
Installing the Monitor
Reference the monitor installation section.

Starting monitor at boot
Add the following lines to /etc/rc.local. Tailor the paths to the actual location of mono and mono-service.exe. The path after the -d: option should point to the folder that the monitor was installed to.

Code: Select all

rm /tmp/ugccmonsvc.exe.lock
/usr/local/bin/mono /usr/local/lib/mono/2.0/mono-service.exe -d:/common/ugccmon ugccmonsvc.exe </dev/null >& /dev/null &
LD_LIBRARY_PATH
--SRCDS doesn't require this anymore--left here incase other game servers may require it--
Most game servers for Linux seem to use shell scripts to start the game server. This doesn't work too well as the process identifier returned to UGCC is usually that of the script and not the game server. Some scripts seem to work ok, so your mileage might vary. SRCDS is one that I'm aware of that doesn't work, if you add ".:bin" to your LD_LIBRARY_PATH (in /etc/bashrc or /etc/profile ie. add export LD_LIBRARY_PATH=".:./bin:$LD_LIBRARY_PATH") you may then directly call the srcds_amd/i686/etc executable directly. If using mod_mono you can add 'MonoSetEnv LD_LIBRARY_PATH=".:bin:/usr/local/lib"' to do the same in the httpd.conf or mod_mono.conf file.

Troubleshooting steps
  • First thing to do is view the ugccmon.log and/or ugccweb.log files. These should give you a hint if it's a handled error.
  • Next review the system messages log file. Typically /var/log/messages or /var/log/syslog. Typing tail /var/log/messages will give you the last few lines of the log file. Sometimes this information may be helpful. You can also search for the text mono or ugcc to find specific entries.
  • Running dmesg will sometimes help
  • If unable to connect to the monitor, make sure it's actually running. Starting the monitor creates a file in /tmp/ugccmonsvc.exe.lock. If the monitor is not running, you can try to delete this file and see if it'll start.
  • If you're having trouble with the monitor, try running it with the --debug option to see if it throws an error message. ie. "mono-service2 ugccmonsvc.exe --debug"
  • Feel free to contact us for more help.
--------------------------------------------------------------------------------------
My mod_mono.conf file:

Code: Select all

# mod_mono.conf

# Acthung! This file may be overwritten
# Use 'include mod_mono.conf' from other configuration file
# to load mod_mono module.
MonoSetEnv LD_LIBRARY_PATH=".:bin:/usr/local/lib"
MonoServerPath /usr/local/bin/mod-mono-server2
<IfModule !mod_mono.c>
    LoadModule mono_module /usr/lib/httpd/modules/mod_mono.so
    AddType application/x-asp-net .aspx
    AddType application/x-asp-net .asmx
    AddType application/x-asp-net .ashx
    AddType application/x-asp-net .asax
    AddType application/x-asp-net .ascx
    AddType application/x-asp-net .soap
    AddType application/x-asp-net .rem
    AddType application/x-asp-net .axd
    AddType application/x-asp-net .cs
    AddType application/x-asp-net .config
    AddType application/x-asp-net .Config
    AddType application/x-asp-net .dll
    DirectoryIndex index.aspx
    DirectoryIndex Default.aspx
    DirectoryIndex default.aspx
</IfModule>
Masher
-----------
Please do not PM me unless asked to! We are a small company. If you have an issue or question it would be best to post it in the forums where it can help others in the future.

NEW Join our Discord!
Post Reply