View Full Version : Simple Linux install
mike047
12-05-2008, 03:28 PM
Title says it all.
I am not and do not wish to be a Linux guru. I have a multitude of Linux boxes and wish to run SOB. I downloaded the client and got the tar unpacked, but don't have the knowledge to make it work.
Something very simple, please. I am using Ubuntu 8.04.
Thanks in advance. I have tried for several hours and searched for a tutorial without luck.
mike
enderak
12-06-2008, 03:09 AM
1) Edit sclient.conf and change "Username anonymous" to your "Username <your username> and also change the Team if you are on a team
2) Open a command window, change to the SoB client folder and run "./sb ./sclient.conf &" (minus the quotes) and it will be run until you kill the process or restart.
If you have multiple CPU's/cores and are running multiple clients on one machine, just make more than one copy and run each one from it's respective directory. I use "SB1", "SB2", etc for directory names
jamroga
12-06-2008, 03:09 AM
1) Sign up online at www.seventeenorbust.com, to create a user name. Lets say you picked the user name as "mike", use this name in the "sclient.conf" configuration file. My example below uses "mike".
The rest of these instructions assume you are working in command line or terminal mode.
2) Lets say your home directory on your home computer is : /home/bob.
I would get into your home directory then make a "sob" sub-directory. Type:
mkdir sob
And then unpack the contents of the seventeen of bust client into that directory: /home/bob/sob
You probably want to make sure you change to this directory before doing any client tasks in the future. Do this by typing:
cd /home/bob/sob
3) Important files in /home/bob/sob
sb - this should be the default seventeen or bust executable client
sclient.conf - the main and only client configuration
4) Edit sclient.conf in a text editor (like vi) or any GUI one you want to set some things up. Your sclient.conf should look like this when done.
------------------- cut --------------
# need to change this unless you're doing something incredibly
# unauthorized with our client! (Or if you're using a proxy.)
#
# Currently a ServerAddress of sbp.pns.net along with either
# ServerPort 80 or ServerPort 22 will allow you to go around
# most packet filtering firewalls. Try these if you experience
# difficulty connecting.
ServerAddress www.seventeenorbust.com
ServerPort 1717
# The username to use on the server. This MUST BE A VALID
# you will be denied blocks! If you wish, you can use the
# 'anonymous' username, but remember that you won't be able
# to view your individual performance statistics on the
# website since they'll be shared with everyone else using
# 'anonymous'.
#
# Username should be alphanumeric (no spaces,
# _, -, etc) and 16 characters or less. Usernames must
# be assigned by the online signup script at
# www.seventeenorbust.com. Team names are now done via
# the user preference page on www.seventeenorbust.com
Username mike
# Controls the client's logging behavior. The client will
# either write its results to a logfile, to the console, or
# both. You can also define a maximum log size -- once the
# log reaches this size, old entries will be removed when
# new entries are added. MaxLogSize is measured in kbytes.
LogFile sclient.log
LogToConsole 1
MaxLogSize 1000
# The priority level to run at. The following values are
# defined; any other value will be ignored:
# 1 - realtime priority (NOT recommended)
# 2 - high priority
# 3 - normal priority
# 4 - low priority
# 5 - idle priority (recommended)
PriorityLevel 5
# The transmission of intermediate blocks is recommended if you
# have a constant internet connection. Even if you cannot
# connect for the intermediate block reports every time,
# computation will still continue, although it will pause
# breifly to try every hour or so.
# 1 - Enable
# 0 - Disable
Transmit 1
TransmitBlocks 20
# MaxRetries and RetryWait define how the client handles block
# request or report failures. The client will retry a maximum
# of MaxRetries times (or infinitely if MaxRetries is 0). Once
# it exceeds this number, it will exit. After a failure, it
# will wait RetryWait seconds before retrying. (Please don't
# set this lower than 60 seconds, or you'll be hammering the
# server if it ever goes down!)
MaxReportRetries 0
MaxRetries 0
RetryWait 1200
---------- cut ------------
The above are all reasonable setting if you are on an average system with an average always on internet connection. If they do not work please describe your specific situation in detail.
5) Start your client by hand:
nohup ./sb sclient.conf &
I use "nohup" and the "&" to both put the client in the background, and allow it to run forever; even if I close the terminal (even if done remotely via ssh).
6) You can check the status of your client by typing:
tail sclient.log
7) You client will stop automatically when you shutdown and power off the machine. Alternatively you can kill your client anytime by typing:
ps -ef | grep sb
Noting the process id associate with "sb sclient.conf" (ie. nnnn), and type:
kill nnnn
I would start the client by hand a few times and look at the sclient.log file to get a good idea of what is happening. Once you get the hang of the simple setup, there are more complex ways to run your client and tailor which data you process and to make the client (or clients) run better on each specific machine. I will leave these for a later question and time.
IronBits
12-06-2008, 03:39 AM
Very nice instructions so far, let's add some fun to it :)
Working from the above suggestions, let me give you an optional setup
Assuming you are in /home/bob and at a shell prompt and have a quad core cpu...
mkdir sob
cd sob
mkdir sb1
mkdir sb2
mkdir sb3
mkdir sb4
extract the sob client to /home/bob/sob
cd /home/bob/sob
after editing the sclient.conf as outlined above
cp * sb1
cp * sb2
cp * sb3
cp * sb4
cd /home/bob
Create a file using vi or other editor called .screenrc-sob (the . is important in the filename)
Note: the line that starts with : hardstatus string - is one long string, watch out for line wrap...
startup_message off
autodetach on
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{=kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}%Y-%m-%d %{W}%c %{g}]'
chdir
screen -t shell 0
chdir /home/bob/sob/sb1
screen -t sob1 1 ./sb sclient.conf
chdir /home/bob/sob/sb2
screen -t sob2 2 ./sb sclient.conf
chdir /home/bob/sob/sb3
screen -t sob3 3 ./sb sclient.conf
chdir /home/bob/sob/sb4
screen -t sob4 4 ./sb sclient.conf
Save and close it.
Next step:
in /home/bob - create one more file called start-sob using vi or some editor
put the following lines in it
#!/bin/sh
screen -O -S sob-clients -c ~/.screenrc-sob
Save and close it
type chmod 755 start-sob
now just type ./start-sob
Let's create a simple utility that will help you get to your clients so you can see them working ;)
Create a new file called: screens
Put the following lines into it
#!/bin/bash
# filters the screen -ls output to show the sesssions
sessions=`screen -ls | sed -ne 's/[[:space:]]//' -ne 's/\((Attached)\|(Detached)\)// p'`
res=`echo "$sessions" | wc -w`
if (( $res == 0 ))
then
echo " No existing SCREEN session to reattach to..."
exit
fi
echo ''
echo " CURRENT SESSIONS"
echo " ------------------------"
#screen -ls | sed -ne 's/[[:space:]]//' -ne 's/\((Attached)\|(Detached)\)// p' | cat -n
echo "$sessions" | cat -n
echo " ------------------------"
echo ''
#if first argument is not specified, script will ask for number of screen
if [ -z $1 ]
then
echo -n " Reattach to session: "
read session
else
session=$1
fi
#attach to specified session
linenum=0
name=`screen -ls | sed -ne 's/[[:space:]]//' -ne 's/\((Attached)\|(Detached)\)// p' |
while read line
do
let "linenum += 1"
if [[ "$linenum" -eq "$session" ]]
then
echo $line
break
fi
done`
if [[ "$name" != "" ]]
then
screen -d -r "$name"
else
echo " Could not reattach to '$session'"
fi
save and close it
type: chmod 755 screens
type: ./screens and you will see something like this
CURRENT SESSIONS
------------------------
1 7908.sob-clients
------------------------
Reattach to session:
Enter a 1 and hit <enter>
Ctrl-A then 0 will take you to a shell prompt within screen
Ctrl-A then 1 will take you to sob client 1
Ctrl-A then 2 will take you to sob client 2
Ctrl-A then 3 will take you to sob client 3
Ctrl-A then 4 will take you to sob client 4
Ctrl-A then d will drop you out of screen and take you back to the real shell prompt, leaving all your clients running, even if you log out. ;)
Next time you want to check on them, open a shell prompt, or even via ssh if you like, and
type ./screens to see what the sob cllients are doing... :)
More information about screen can be found every where with a google search
Here's one to get you started: http://www.rackaid.com/resources/linux-tutorials/general-tutorials/using-screen/
mike047
12-06-2008, 08:44 AM
Thanks guys for the replies. I have managed to start 2 instances on a dual core.
If I lose power or have to shutdown...will it restart by itself or do I manually start them. Will they restart where they left off??
mike
enderak
12-06-2008, 12:08 PM
You will have to start them manually when you restart, unless you make a script to start them under /etc/init.d and set it up to run when you boot up.
They will all start back where you left off, assuming you don't do something dumb like delete the cache file. :)
jamroga
12-06-2008, 05:59 PM
Here are a few more steps for a simple install now that you seem to have the basics up and running. (these steps are still simpler in complexity than some other suggestions)
1) This step was omitted by mistake from my first response.
Make sure your seventeen or bust client is executable.
Without the execute flag set, it will not run; To set the execute flag type:
chmod +x sb
2) The Client will need to be restarted by hand at every reboot unless you put an autostart procedure in place. There are many ways to do this, depending upon your flavor of Linux or Unix, or how you login, or even if you use a GUI or not. I would like to hold off on this issue right now - or defer to someone else.
When restarted, Clients will resume the calculations from where they left off. A calculation progress file is written periodically so that the client can recover from most shutdowns; even aggressive ones like the unexpected loss of power. It is important not to mess with these progress files unless you know what you are doing.
2) If you plan to run more then one instance of the client, I would recommend creating a directory for each client. I would then put a copy of the client executable "sb" and client configuration "sclient.conf" in each directory. This makes the clients independent; each will work on there own calculations independent from each other and each can be independently started or stopped. Each client also has its own log file output. This independence makes debugging any client troubles very easy. This independence also gives you the ability to move clients from one machine to another - just by: Stopping the client. Moving that client's directory to the new machine and restarting the client. The client will then resume work on the same calculation where it left off.
3) Upgrading the client. You can make your client run faster by upgrading the client to the latest version. In this case it is called sb2.5.06 (BETA), I have been running this beta without trouble since it came out. On my machines it runs about 6% faster than previous versions. Mine is dated 2-17-2008, is 3879608 bytes in size and has a MD5 signature of f3b8dc1ab2744468e19e3513b08f0d09. This is the latest beta I know of; there was no formal release - so use the above information as a guide.
To install simply
a) stop the client
b) copy the newer executable over the older one
(something like: cp sb2.5.06 sb)
c) make sure it is executable:
chmod +x sb
d) restart the client.
This should be done individually to all the clients you want to upgrade.
This latest client also provides some communications benefits. It can be configured to only contact the main server (to transmit completed block information) at specified intervals. This can save a good amount of time and bandwidth with the fastest machines saving the most.
To enable this feature make sure the following lines are in the "sclient.conf" configuration file for the client.
--- section from sclient.conf -----
# The transmission of intermediate blocks is recommended if you
# have a constant internet connection. Even if you cannot
# connect for the intermediate block reports every time,
# computation will still continue, although it will pause
# breifly to try every hour or so.
# 1 - Enable
# 0 - Disable
Transmit 1
TransmitBlocks 100
--- section from sclient.conf -----
The setting of "Transmit 1" tell the client to report status to the server - which is nice for getting up to date user statistics. The setting "Transmit Blocks 100" tells the client to transmit this information every 100 blocks instead of every block. On fast clients, 100 Blocks might work out to effectively transmit update information once every 100 minutes (an hour and a half) instead of every minute. On faster clients, 200 might be a better number. On fast clients that you only want statistics once a day you can use very large numbers like 2000 or 4000 to cut down on overhead.
Let me know if this information helps. This is probably the end of my "simple" installation notes. Other individuals can provide more information on more complex methods of installation and monitoring of seventeen or bust clients. I personally would look forward see what other people post about their more complex implementations, especially their benefits and their trade offs.
Good Luck and Best Regards,
mike047
12-06-2008, 06:19 PM
I installed like step 2 above, a seperate directory for each instance. Everything is still working well.
Again, Thanks all.
Pineapple
01-02-2009, 01:20 AM
It's probably also worth mentioning that sb requires libstdc++5, which may not be automatically installed with recent versions of some distros. On Debian (and all derivatives, including Ubuntu), this can be installed with sudo aptitude install libstdc++5.
Powered by vBulletin® Version 4.2.4 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.