2004-02-09 05:11:05 +00:00
|
|
|
<?php
|
|
|
|
|
2004-11-15 14:46:15 +00:00
|
|
|
// MORE WORK IS NEEDED ON THIS IMPORTANT FILE. THE DEPRECATED <FOO/> ELEMENTS SHOULD BE CHANGED TO <FOO> 1 </FOO>.
|
|
|
|
// MANY OF THE TAGS BELOW ARE NOT EXPLAINED IN THE DOCUMENTATION, AND THE LIST HERE IS PROBABLY NOT COMPLETE.
|
|
|
|
|
2004-02-09 05:11:05 +00:00
|
|
|
require_once("docutil.php");
|
|
|
|
|
2004-11-15 14:46:15 +00:00
|
|
|
echo "<-- \$Id$ -->\n";
|
|
|
|
|
2004-02-09 05:11:05 +00:00
|
|
|
page_head("The project configuration file");
|
|
|
|
|
|
|
|
echo"
|
|
|
|
A project is described by a configuration file
|
|
|
|
named <b>config.xml</b> in the project's directory.
|
|
|
|
A config.xml file looks like this:
|
|
|
|
<pre>",
|
|
|
|
htmlspecialchars("
|
|
|
|
<boinc>
|
2004-11-15 14:46:15 +00:00
|
|
|
|
2004-02-09 05:11:05 +00:00
|
|
|
<config>
|
2004-11-15 14:46:15 +00:00
|
|
|
<host> project.hostname.ip </host>
|
|
|
|
<db_name> databasename </db_name>
|
|
|
|
<db_host> database.host.ip </db_host>
|
|
|
|
<db_user> database_user_name </db_user>
|
|
|
|
<db_passwd> database_password </db_passwd>
|
|
|
|
<shmem_key> shared_memory_key </shmem_key>
|
|
|
|
<download_url> http://A/URL </download_url>
|
|
|
|
<download_dir> /path/to/directory </download_dir>
|
|
|
|
<upload_url> http://A/URL </upload_url>
|
|
|
|
<upload_dir> /path/to/directory </upload_dir>
|
|
|
|
<cgi_url> http://A/URL </cgi_url>
|
|
|
|
<stripchart_cgi_url> http://A/URL </stripchart_cgi_url>
|
|
|
|
<log_dir> /path/to/directory </log_dir>
|
|
|
|
|
|
|
|
[ <disable_account_creation/> ]
|
|
|
|
[ <show_results/> ]
|
|
|
|
[ <one_result_per_user_per_wu/> ]
|
|
|
|
[ <max_wus_to_send> N </max_wus_to_send> ]
|
|
|
|
[ <min_sendwork_interval> N </min_sendwork_interval> ]
|
|
|
|
[ <daily_result_quota> N </daily_result_quota> ]
|
|
|
|
[ <enforce_delay_bound/> ]
|
|
|
|
|
2004-02-09 05:11:05 +00:00
|
|
|
<!-- optional; defaults as indicated: -->
|
2004-11-15 14:46:15 +00:00
|
|
|
<project_dir> ../ </project_dir> <!-- relative to location of 'start' -->
|
|
|
|
<bin_dir> bin </bin_dir> <!-- relative to project_dir -->
|
|
|
|
<cgi_bin_dir> cgi-bin </cgi_dir> <!-- relative to project_dir -->
|
2004-02-09 05:11:05 +00:00
|
|
|
</config>
|
2004-11-15 14:46:15 +00:00
|
|
|
|
2004-02-09 05:11:05 +00:00
|
|
|
<daemons>
|
|
|
|
<daemon>
|
2004-11-15 14:46:15 +00:00
|
|
|
<cmd> feeder -d 3 </cmd>
|
|
|
|
[ <host> hostname.ip </host> ]
|
|
|
|
[ <disabled> 1 </disabled> ]
|
|
|
|
</daemon>
|
|
|
|
<daemon>
|
|
|
|
...
|
2004-02-09 05:11:05 +00:00
|
|
|
</daemon>
|
|
|
|
</daemons>
|
2004-11-15 14:46:15 +00:00
|
|
|
|
2004-02-09 05:11:05 +00:00
|
|
|
<tasks>
|
|
|
|
<task>
|
2004-11-15 14:46:15 +00:00
|
|
|
<cmd> get_load </cmd>
|
|
|
|
<output> get_load.out </output>
|
|
|
|
<period> 5 min </period>
|
|
|
|
[ <host> host.ip </host> ]
|
|
|
|
[ <disabled> 1 </disabled> ]
|
|
|
|
[ <always_run> 1 </always_run> ]
|
2004-02-09 05:11:05 +00:00
|
|
|
</task>
|
|
|
|
<task>
|
2004-11-15 14:46:15 +00:00
|
|
|
<cmd> echo \"HI\" | mail root@example.com </cmd>
|
|
|
|
<output> /dev/null </output>
|
|
|
|
<period> 1 day </period>
|
2004-02-09 05:11:05 +00:00
|
|
|
</task>
|
2004-11-15 14:46:15 +00:00
|
|
|
<tasks>
|
|
|
|
...
|
|
|
|
</tasks>
|
2004-02-09 05:11:05 +00:00
|
|
|
</tasks>
|
2004-11-15 14:46:15 +00:00
|
|
|
|
2004-02-09 05:11:05 +00:00
|
|
|
</boinc>
|
|
|
|
"),
|
|
|
|
"</pre>
|
2004-05-31 18:13:01 +00:00
|
|
|
";
|
2004-11-15 14:46:15 +00:00
|
|
|
|
|
|
|
echo "<b>The general project configuration elements are:</b>";
|
2004-05-31 18:13:01 +00:00
|
|
|
list_start();
|
|
|
|
list_item("host", "name of project's main host, as given by Python's socket.hostname(). Daemons and tasks run on this host by default.");
|
2004-11-15 14:46:15 +00:00
|
|
|
list_item("db_name", "Database name");
|
|
|
|
list_item("db_host", "Database host machine");
|
|
|
|
list_item("db_user", "Database user name");
|
|
|
|
list_item("db_passwd", "Database password");
|
2004-05-31 18:13:01 +00:00
|
|
|
list_item("shmem_key", "ID of scheduler shared memory. Must be unique on host.");
|
|
|
|
list_item("download_url", "URL of data server for download");
|
|
|
|
list_item("download_dir", "absolute path of download directory");
|
|
|
|
list_item("upload_url", "URL of file upload handler");
|
|
|
|
list_item("upload_dir", "absolute path of upload directory");
|
|
|
|
list_item("cgi_url", "URL of scheduling server");
|
2004-11-15 14:46:15 +00:00
|
|
|
list_item("stripchart_cgi_url", "URL of stripchart server");
|
|
|
|
list_item("log_dir", "Path to the directory where the assimilator, feeder, transitioner and
|
|
|
|
cgi output logs are stored. This allows you to change the default log
|
|
|
|
directory path. If set explicitly, you can also use the 'grep logs'
|
|
|
|
features on the administrative pages. Note: enabling 'grep logs' with
|
|
|
|
very long log files can hang your server, since grepping GB files can
|
|
|
|
take a long time. If you enable this feature, be sure to rotate the
|
|
|
|
logs so that they are not too big.");
|
|
|
|
list_end();
|
|
|
|
|
|
|
|
echo "<b>The following control features that you may or may not want available to users.</b>";
|
|
|
|
list_start();
|
2004-05-31 18:13:01 +00:00
|
|
|
list_item("disable_account_creation", "If present, disallow account creation");
|
2004-09-14 21:29:52 +00:00
|
|
|
list_item("show_results", "Enable web site features that show results (per user, host, etc.)");
|
2004-05-31 18:13:01 +00:00
|
|
|
list_end();
|
2004-11-15 14:46:15 +00:00
|
|
|
|
|
|
|
echo "<b>The following control the way in which results are scheduled, sent, and assigned to users and hosts.</b>";
|
|
|
|
list_start();
|
|
|
|
list_item("one_result_per_user_per_wu", "If present, send at most one result of a given workunit to a given
|
|
|
|
user. This is useful for checking accuracy/validity of results. It
|
|
|
|
ensures that the results for a given workunit are generated by
|
|
|
|
<b>different</b> users. If you have a validator that compares
|
|
|
|
different results for a given workunits to ensure that they are
|
|
|
|
equivalent, you should probably enable this. Otherwise you may end up
|
|
|
|
validating results from a given user with results from the <b>same</b>
|
|
|
|
user.");
|
|
|
|
list_item("max_wus_to_send", "Maximum results sent per scheduler RPC. Helps prevent hosts with
|
|
|
|
trouble from getting too many results and trashing them. But you
|
|
|
|
should set this large enough so that a host which is only connected to
|
|
|
|
the net at intervals has enough work to keep it occupied in between
|
|
|
|
connections.");
|
|
|
|
list_item("min_sendwork_interval", "Minimum number of seconds to wait after sending results to a given
|
|
|
|
host, before new results are sent to the same host. Helps prevent
|
|
|
|
hosts with download or application problems from trashing lots of
|
|
|
|
results by returning lots of error results. But don't set it to be so
|
|
|
|
long that a host goes idle after completing its work, before getting
|
|
|
|
new work.");
|
|
|
|
list_item("daily_result_quota", "Maximum number of results sent to a given host in a 24-hour
|
|
|
|
period. Helps prevent hosts with download or application problems from
|
|
|
|
returning lots of error results. Be sure to set it large enough that
|
|
|
|
a host does not go idle in a 24-hour period, and can download enough
|
|
|
|
work to keep it busy if disconnected from the net for a few days.");
|
|
|
|
list_item("enforce_delay_bound", "Don't send results to hosts too slow to complete them within delay bound");
|
|
|
|
list_end();
|
|
|
|
|
|
|
|
// THE INFORMATION BELOW NEEDS TO BE ORGANIZED AND PUT INTO TABLES OR SOME OTHER LESS CRAMPED FORM
|
2004-05-31 18:13:01 +00:00
|
|
|
echo "
|
2004-02-09 05:11:05 +00:00
|
|
|
<b>Tasks</b> are periodic, short-running jobs.
|
2004-02-12 01:13:47 +00:00
|
|
|
<cmd> and <period> are required.
|
2004-02-09 05:11:05 +00:00
|
|
|
OUTPUT specifies the file to output and by default is COMMAND_BASE_NAME.out.
|
2004-02-12 01:13:47 +00:00
|
|
|
Commands are run in the <bin_dir> directory
|
|
|
|
which is a path relative to <project_dir> and output to <log_dir>.
|
2004-02-09 05:11:05 +00:00
|
|
|
|
|
|
|
<p>
|
|
|
|
<b>Daemons</b> are continuously-running programs.
|
2004-02-12 01:13:47 +00:00
|
|
|
The process ID is recorded in the <pid_dir> directory
|
2004-02-09 05:11:05 +00:00
|
|
|
and the process is sent a SIGHUP in a DISABLE operation.
|
|
|
|
<p>
|
|
|
|
Both tasks and daemons can run on a different host (specified by <host>).
|
|
|
|
The default is the project's main host, which is specified in config.host
|
2004-05-31 18:13:01 +00:00
|
|
|
A daemon or task can be turned off by adding the <disabled> element.
|
2004-10-27 21:10:28 +00:00
|
|
|
As well, there may be some tasks you wish to run via cron regardless of
|
|
|
|
whether or not the project is enabled (for example, a script that logs the
|
|
|
|
current CPU load of the host machine). You can do so by adding the
|
|
|
|
<always_run> element (<disabled> takes precedence over <always_run>).
|
2004-02-09 05:11:05 +00:00
|
|
|
";
|
|
|
|
page_tail();
|
|
|
|
?>
|