Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
The ulimit command provides control over the resources available to the shell and/or to processes started by it, on systems that allow such control. If you have a hub with thousands of users, they can be disconnected from the hub because of ulimit.
If you run the hub as root you can't set the ulimit to an unlimited value:
ulimit -n <users>
should be a number and if you set it to 20000, Linux will limit the max number of open connections to 20000.
If you are running the hub as normal user, you must tell the system to allow a soft and hard limit for that user. In this case you need to edit the file /etc/security/limits.conf and adding the following lines:
username soft nofile 20480 username hard nofile 20480
where username is the name of the user with whom you are running the hub. Then next time you login with that user and type ulimit -n command, you will see the new limit.
If you have installed Lua 5.0.x library from source, current Makefile does not support uninstall target; that means you can't uninstall it automactly by typing:
Suppose Lua library is installed in default location (/usr/local), the following files are installed:
./bin/lua (the interpreter)
./bin/luac (the compiler)
liblua.a and liblualib.a in ./lib (the libraries)
lua.h and lualib.h in ./include. (include files)
To remove them type (as root):
cd /usr/local rm bin/lua bin/luac lib/liblua.a lib/liblualib.a include/lua.h include/lualib.h
And it's done. Now you can upgrade to Lua 5.1.x library if you want.
This guide will help you to update GeoIP table automatically. Maxmind's GeoIP database is usually updated at the begining of each month. With crontab you can schedule automatic updates periodically using vh script.
Open crontab file with your favorite editor using:
Now append at the end of the file this line:
0 0 1 * * /usr/local/vh --geoip >/dev/null
@monthly /usr/local/vh --geoip >/dev/null
Change path to script based on you installation folder. Now crontab will update table every month. To disable it just remove or comment the added line.
Here a guide how to debug Verlihub in case it crashes.
First of all install the debugger tool gdb. Then start verlihub with:
gdb verlihub 2>&1 | tee ~/gdb-verlihub.txt
It will prompt you in gdb console something like this:
netcelli@amd ~ $ gdb verlihub 2>&1 | tee ~/gdb-verlihub.txt GNU gdb 6.8 Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-pc-linux-gnu"... (gdb)
Now start the process by typing "run" and press enter. GDB will start Verlihub in debug mode, that means you can see Verlihub logs in your console. Wait for a crash and in gdb console type:
(gdb) backtrace full (gdb) info registers (gdb) x/16i $pc (gdb) thread apply all backtrace (gdb) quit
This will save a lot of debug info in gdb-verlihub.txt file to understand why the process just crashed. Send that file to Git hub issues page.
Also since version 1.0.0 hub will attempt to send crash backtrace to Verlihub Crash Server via HTTP protocol, or in case of failure write it to error log file.
You can start translating Verlihub in your own language on Verlihub 188.8.131.52 @ Transifex. Click on the links to see status of the translation languages:
In order to apply existing locale to your hub, you need to put following line into
This means that we are using Russian language
ru in Russian Federation
CP1251 character encoding. Please read more about locales.
Then you need to generate that locale in your OS. Following example can be used on Debian and Ubuntu:
locale-gen ru_RU.CP1251 localedef -c -i ru_RU -f CP1251 ru_RU.CP1251
Please use correct character encoding for each language used. Here you can find a list of available languages together with corresponding character encodings: LANGS