Results 1 to 9 of 9

Thread: Simple Linux install

  1. #1
    Join Date
    Jul 2006
    Zirconia, NC, USA

    Simple Linux install

    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.


    261.50 Ghz Home Owned and Operated Crunching Power

  2. #2
    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

  3. #3

    Simple Linux Setup

    1) Sign up online at, 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 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.
    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
    # Team names are now done via
    # the user preference page on
    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.

  4. #4
    Target Butt IronBits's Avatar
    Join Date
    Dec 2001
    Morrisville, NC
    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...

    PHP Code:

    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}]'

    -t shell  0

    -t sob1  1 ./sb sclient.conf

    -t sob2  2 ./sb sclient.conf

    -t sob3  3 ./sb sclient.conf

    -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

    PHP Code:

    screen --S sob-clients -~/.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

    PHP Code:


    # 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 == ))
    echo "  No existing SCREEN session to reattach to..."

    echo ''
    echo "  ------------------------"
    #screen -ls | sed -ne 's/[[:space:]]//' -ne 's/\((Attached)\|(Detached)\)// p' | cat -n
    echo "$sessionscat -n
    echo "  ------------------------"
    echo ''

    #if first argument is not specified, script will ask for number of screen

    if [ -$]
    echo -"  Reattach to session: "
    read session

    #attach to specified session
    =`screen -ls | sed -ne 's/[[:space:]]//' -ne 's/\((Attached)\|(Detached)\)// p' |
    while read line
     let "linenum += 1"
     if [[ "
    $linenum" -eq "$session" ]]

    if [[ 
    "$name!= "" ]]
    "  Could not reattach to '$session'"
    save and close it

    type: chmod 755 screens

    type: ./screens and you will see something like this

    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:

  5. #5
    Join Date
    Jul 2006
    Zirconia, NC, USA
    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??


    261.50 Ghz Home Owned and Operated Crunching Power

  6. #6
    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.

  7. #7

    Simple Linux Setup - a few more steps

    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,

  8. #8
    Join Date
    Jul 2006
    Zirconia, NC, USA
    I installed like step 2 above, a seperate directory for each instance. Everything is still working well.

    Again, Thanks all.

    261.50 Ghz Home Owned and Operated Crunching Power

  9. #9
    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.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts