TkSETI version 3.06 by Rick Macdonald <rickm@vsl.com> You are running /usr/local/bin/wish patchlevel 8.3.2+. Usage: tkseti [--help] [user_setiathome_directory] user_setiathome_directory defaults to ~/setiathome ======================== TkSETI@Home Installation ======================== Untar the distribution file: gunzip -qc tkseti-X.XX.tar.gz | tar xvf - and just place the tkseti file anywhere in your path. There is a "contrib" directory where various scripts and information has been contributed by TkSETI users. TkSETI requires Tcl/Tk 8.0 or newer. See http://www.scriptics.com/download =================== TkSETI@Home Startup =================== You must run the setiathome client once manually from the command line to get registered. Just answer all the prompts. Once the client is running properly, you can run tkseti. TkSETI can be started if the client is already running, or it can start the client manually or automatically for you. This is explained in the Setup section that follows. TkSETI will look for the client files in the directory ~/setiathome. If you've run the client elsewhere, or run more than one client, just specify the setiathome client directory on the tkseti command line. For example: tkseti ~/setiathome If your xserver is short on colors, you might try giving TkSETI its own colormap: tkseti ~/setiathome -colormap new Multiple Clients ================ If you run multiple setiathome clients, you must run an instance of tkseti for each one. TkSETI needs to find just one client, and the way to do this is to give the clients unique names or execute them from unique paths. Specify this unique string in the "Client Name" setup field described next. Examples: client1 cpu0/setiathome Here's one way to run more than one setiathome client: - create another setiathome directory: mkdir ~/setiathome2. - cd into the new directory: cd ~/setiathome2 - make a copy of the client anywhere in your path with a unique name. - or - make a symlink with a unique name to your client (in this working directory or anywhere in your path): ln -s /usr/local/bin/setiathome seti2 - execute the client manually, and select option 2: We use your email address to identify you. Please type: 1 to set up a new account (first-time users); 2 to log into an existing account (returning users). Your choice (1 or 2): 2 Email address: you@your.address The client will verify your email address and then download another work unit and start processing it. Execute tkseti with the new directory as an argument: tkseti ~/setiathome2 With the defaults, it may find the wrong client to monitor. Go to the Setup window and fill in the proper "Client Name" and "How to Run" values. ================= TkSETI@Home Setup ================= The TkSETI Setup window has sections divided up with notebook tabs: General Setup, Helper Applications, and Auto Modes. ===================== *** General Setup *** ===================== The first section of the Setup window offers various options for starting or continuing the client when TkSETI starts, and killing or pausing the client when TkSETI exits. There is also an option to restart the client if it "disappears" after it has been running. This can occur if somebody kills it externally, or if it unexpectedly dies on its own. The "Master Directory" is where files are kept containing your personal best Spike, Gaussian, Pulse and Triplet and the coordinates of all the work units that you process so TkSETI can plot them all on the Star Map. If you run multiple TkSETIs, point them all to the same Master Directory. The Master Directory can be the same as one of your setiathome client directories. If you ever change the Master Directory, TkSETI will carry over these values and merge them with any master files found in the new Master Directory. =========================== *** Helper Applications *** =========================== Client Name =========== The client name is used to find the setiathome client in the output of the "How to Stat" command described below. It is usually "setiathome", but you may need to enter all or part of the path here, especially if you run more than one client at a time. Or, perhaps you've renamed the client itself. Note that this is the client executable name, _not_ a script that you might use to start the client. How to Run (setiathome client) ========== Typical examples: setiathome /usr/local/seti/cpu0/setiathome -nice 19 /usr/local/bin/setiathome -nice 19 setiathome -email -nice 19 >& /dev/null Higher "nice" values (19 is the highest) give it a low run priority so you don't notice the cpu activity so much while you're interacting with other programs. With the "-email" option, the client will send network error messages to you via email. Use ">& /dev/null" to discard the output from the client. Piping the output through grep should work, but due to internal buffering you might not get anything output for a long time. There are two setiathome client command line options that may be of use to some people: -stop_after_process stop after current WU - do NOT send result -stop_after_xfer stop after current WU - DO send result How to Kill, Pause, Continue ============================ The Kill, Pause and Continue commands must contain the string "$pid", which gets replaced with the process ID of the setiathome client. Kill: kill -KILL $pid Pause: kill -STOP $pid Continue: kill -CONT $pid How to Stat =========== Stat: ps ax The Stat command is expected to return zero or more lines from ps. TkSETI searches these lines for the "setiathome" client program. The ps output must contain the "pid", the "status" and at least the command name from the command line. The status flag meaning that a process is paused is "T", but this can be configured in the Setup window ("Paused Flags") with a list of blank-separated values. All other flags are considered as running. Zombies (Z or z) are ignored. For example: % ps ax ... other processes not shown ... 5809 p0 R N444:18 setiathome -email -nice 19 ... other processes not shown ... The stat string is split into fields by blanks, and the field numbers (starting from zero) are configurable for the PID and Status. In the example above, the PID index is 0 (5809) and the Status index is 2 ("R"). Web Browser =========== This command must contain the string "$url" which gets replaced by the SETI@Home web page URL, or a statistics page URL. Some systems, such as Debian GNU/Linux, supply "netscape" as a wrapper that first tries to open a new window in an already-running netscape. If that fails because netscape isn't running, it launches a new netscape. If your system doesn't have such a wrapper, use the command form shown below for "no wrapper" to achieve the same results. The command shown also works with the Debian wrapper. Examples: netscape (smart wrapper): netscape $url netscape (no wrapper): /bin/csh -c "netscape -remote openURL\\\\($url,new-window\\\\) || exec netscape $url" KDE's kfm: kfmclient openURL $url lynx: xterm -e lynx $url Proxy Host ========== If you need to access the web through a proxy server, TkSETI can be configured to use the proxy for its own accesses to the web and for running the setiathome client. At startup, TkSETI checks if you have previously set the HTTP_PROXY environment variable, and uses this to set or override any previous value stored by TkSETI in the Setup. Or, in the Setup/HelperApplications menu, give the proxy host (eg: my.proxy.host) and proxy port number (eg: 8080). In either case, you can click "Text Proxy" to actually test the proxy server while on-line. Please note that the environment variable, if set, will always override any proxy stored in TkSETI's Setup every time TkSETI is started. TkSETI can't add the proxy to the setiathome command line for you because for some people "How to Run" is actually a script, and these scripts would not expect this extra parameter. However, TkSETI sets the environment variable HTTP_PROXY (in the format "hostname:port") as documented in the README file that comes with the setiathome client. ================== *** Auto Modes *** ================== The setiathome client can already be running before tkseti is started, or tkseti can start it for you. While it's running, tkseti checks the client status and progress every 10 seconds and updates the CPU usage, progress bar and stats. You can select manual or automatic starting and stopping of the setiathome client from within tkseti. Dial-up users may supply network start/stop scripts for TkSETI to run when the client needs to contact the server. Note that it's up to you to make sure that the interaction between these auto modes and any use of these setiathome client command line options doesn't conflict: -stop_after_process stop after current WU - do NOT send result -stop_after_xfer stop after current WU - DO send result o "Do Not Run during..." mode This automatic mode is controlled simply by specifying a time window and days of the week _NOT_ to allow the client to run. In this mode, TkSETI will always stop the client during this time. Outside of this time window, the other automatic mode ("Monitor System Devices...") is also functional. o "Monitor System Devices..." mode This automatic mode is currently only available for Linux. If you know how to do this for your platform, please let me know (rickm@vsl.com). Automatic starting and stopping is controlled by watching for various system activity, typically of the keyboard and mouse. Select up to 6 devices to monitor. Choose the correct serial device if you have a serial mouse. For auto start, set "After" to the number of seconds of idleness to wait before (re)starting the client. For auto-stop, set "Auto Mode Uses" to instruct tkseti to stop by pausing or killing. A threshold may be specified for each device. The device is considered "idle" if the number of interrupts during the main 10 second loop is less than or equal to this threshold. Note that one keystroke is two interrupts. For other devices such as the mouse and network interfaces, you'll have to experiment to set a threshold value that works for you. The setiathome client keeps progress checkpoints, so killing it does not loose any work. I recommend pausing over killing anyway, unless you can't afford to have the memory tied up by the inactive setiathome process. o "Run Network Start / Stop scripts" This mode is intended for dial-up users. I actually recommend using the "diald" daemon instead, but this TkSETI feature may be of some use for some people. I'm actually unable to test this properly, so please let me know how it works for you. When the client finishes a work unit and needs to contact the SETI@Home server, the script "How to Start Net" will be run after waiting for the specified number of seconds (the first "after" entry). When a new work unit is received, the script "How to Stop Net" will be run after waiting for the specified number of seconds (the second "after" entry). Note that the Start script will not be run during the optional "Do Not Dial" period. Note the the Stop script will _only_ be run if TkSETI ran the Start script. Hopefully this makes sense. For example, if your network is already up when you start TkSETI, you don't want it to the take the network down after the time specified for the Stop script! TkSETI will kill the client before running the Start script, and restart the client after. This is because the client waits for one hour between attempts to contact the server. TkSETI makes no attempt to determine if the Start script succeeded. If the client still requires a work unit after the "after" seconds has elapsed again, it goes through the sequence again: kill client; run Start script; run client. The "Test" buttons on the Setup screen run your scripts immediately. The client is not killed in this case. *** Please note that the "after" time for the Start script must be long enough to contact the server and download a new work unit. Don't be too impatient! We'll be running this thing for two years. *** Currently there is no check to guard against repeated failed attempts to start the network and retrieve an new work unit. Please let me know if this is a problem. *** Also note that your Start script should be able to handle being executed when the network is already up. Likewise, the Stop script should be able to handle being executed when the network is already down. In both cases, just return and do nothing. *** Don't put "&" in your Start and Stop scripts to run them in the background. If you do, you need to make the "after" time longer to include the time required start your dialup connection. Also, you must have a space before the ampersand: start_net & It still may not work; please let me know if you try this. ==================== Window Manager Icons ==================== Check the "contrib" directory for bitmap (xbm) and pixmap (xpm) files to use as TkSETI icons. fvwm ==== Put your pixmap or bitmap file into a directory in the PixmapPath or IconPath path where you know fvwm is already looking, or use a full pathname in the Style statement below. Then just add one of the following to your .fvwm2rc or .fvwmrc file: fvwm version 2.x: Style "Tk-SETI*" Icon seti.xpm fvwm version 1.x: Icon "Tk-SETI*" seti.xpm Then restart fvwm and you've got it. ======= Support ======= Contact Rick Macdonald <rickm@vsl.com> with any problems or enhancement ideas. TkSETI optionally checks after every work unit for updates and notifies you when a new version is available. A window is popped up and also a message is placed in the TkSETI window manager title bar. The latest version is available from http://www.cuug.ab.ca/~macdonal/tkseti ======= Licence ======= TkSETI - interactive automated control of the setiathome UNIX client program. Copyright (C) 1999-2000 by Rick Macdonald <rickm@vsl.com>. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. TkSETI version 3.06 by Rick Macdonald <rickm@vsl.com> You are running /usr/local/bin/wish patchlevel 8.3.2+. Usage: tkseti [--help] [user_setiathome_directory] user_setiathome_directory defaults to ~/setiathome