-To submit an add-on for inclusion in this list, please
-email David Anderson.
+To submit an add-on for inclusion in this list,
+please email David Anderson.
";
@@ -46,8 +46,13 @@ function show_group($name, $list) {
$version = $item[2];
if (!$version) $version ='
';
$desc = $item[3];
+ if (strstr($file, 'http://')) {
+ $url = $file;
+ } else {
+ $url = "addons/$file";
+ }
echo "
- $itemname |
+
$itemname |
$version |
$desc |
@@ -73,7 +78,8 @@ array('SETITracker_V1.0BETA.zip', 'SETI@Boinc Tracker', '1.0BETA', 'SETI@Boinc T
array('SetiMapView_Setup_v6.54.exe', 'SETI@home-MapView', '6.54', 'SETI@home-Mapview creates skymaps for the BOINC projects SETI@home-II, Einstein@home and Astropulse.'),
array('DBSetup.zip', 'SQL Setup for BoincSpy', 'V 0.7', 'Stores Workunits into SQL database'),
array('spy_pp_v101_setispy_v341.zip', 'Spy++', '', 'Loader for the new version of SetiSpy (3.4.1), the famous SETI addon of Roelof'),
-array('tminst112.zip', 'ThreadMaster', '1.12build128', 'Control max CPU usage and prevent overheat'),
+array('http://threadmaster.tripod.com/', 'ThreadMaster', '', 'Control max CPU usage and prevent overheating (not specific to BOINC)'),
+array('http://mion.faireal.net/BES/', 'BES', '', 'Control max CPU usage and prevent overheating (not specific to BOINC)'),
array('boinclogger.zip', 'boinc logger', '1.0', 'saves the messages part of boinc so you can track down errors'),
array('inst_nB_v13.exe', 'nBOiNC', '1.3.x', 'stats picker'),
);
diff --git a/doc/project_daemons.php b/doc/project_daemons.php
index daf854c883..b0ea32a1f0 100644
--- a/doc/project_daemons.php
+++ b/doc/project_daemons.php
@@ -25,10 +25,10 @@ echo html_text("
list_start();
list_item("cmd",
"The command used to start the daemon.
- This command will be run in the project's bin/ directory."
+ Must be a program in the project's bin/ directory."
);
list_item("host",
- "Specifies where the daemon should run.
+ "Specifies the host on which the daemon should run.
The default is the project's main host,
as specified in config.xml."
);
@@ -36,13 +36,13 @@ list_item("disabled",
"If nonzero, ignore this entry"
);
list_item("output",
- "Name of output file.
+ "Name of output file (in the log_HOSTNAME directory).
Defaults to the program name followed by '.log'.
If you're running multiple instances of a daemon on one host,
you must specify this."
);
list_item("pid_file",
- "Name of file used to store the process ID.
+ "Name of file used to store the process ID (in the pid_HOSTNAME directory).
Defaults to the program name followed by '.pid'.
If you're running multiple instances of a daemon on one host,
you must specify this."
@@ -55,9 +55,6 @@ Daemons are started when you run the
bin/start script,
and killed (by a SIGHUP signal) when you run
bin/stop.
-The process ID is recorded in the <pid_dir> directory
-By convention, daemon X running on host Y
-writes it log output to log_Y/X.log.
Typically, this mechanism is used to run
diff --git a/doc/project_tasks.php b/doc/project_tasks.php
index b2d4dc88b8..fb4b604001 100644
--- a/doc/project_tasks.php
+++ b/doc/project_tasks.php
@@ -43,7 +43,19 @@ list_start();
list_item(
"cmd",
"The command used to perform the task.
- This command will be run in the <bin_dir> directory."
+ Must be a program in the project's /bin directory.
+
+ You can run PHP scripts as periodic tasks.
+ These scripts must be in the html/ops/ directory,
+ and can be run with a command of the form
+
run_in_ops scriptname
+ The script should be executable, and should have the form
+
+#! /usr/bin/env php
+<?php
+...
+?>
+"
);
list_item("host",
"Specifies where the daemon shoulr run.
@@ -86,7 +98,7 @@ list_item("db_dump",
Details are here.
Recommended period: 7 days."
);
-list_item("update_profile_pages",
+list_item("update_profile_pages.php",
"Generate HTML files with lists of links to user profiles,
organized alphabetically and by country.
Recommended period: a few days."
@@ -100,11 +112,11 @@ list_item("update_stats -update_teams -update_users -update_hosts",
or use recent credit to enable message-board posting.
Recommended period: every few days."
);
-list_item("update_uotd",
+list_item("update_uotd.php",
"Select a new User of the Day.
Period: 1 day."
);
-list_item("../html/ops/update_forum_activities.php",
+list_item("update_forum_activities.php",
"Recompute 'popularity' estimages for threads and posts
in the Questions and Answers message boards.
Recommended period: 1 hour."
diff --git a/py/Boinc/setup_project.py b/py/Boinc/setup_project.py
index f50981e50e..aa843e3852 100644
--- a/py/Boinc/setup_project.py
+++ b/py/Boinc/setup_project.py
@@ -349,7 +349,7 @@ def install_boinc_files(dest_dir):
force_symlink(dir('bin', 'start'), dir('bin', 'stop'))
force_symlink(dir('bin', 'start'), dir('bin', 'status'))
map(lambda (s): install(srcdir('tools',s), dir('bin',s)),
- [ 'create_work', 'add', 'xadd', 'dbcheck_files_exist',
+ [ 'create_work', 'add', 'xadd', 'dbcheck_files_exist', 'run_in_ops',
'update_versions', 'parse_config', 'grep_logs', 'db_query',
'watch_tcp', 'sign_executable', 'dir_hier_move', 'dir_hier_path' ])
map(lambda (s): install(srcdir('py/Boinc',s), dir('bin',s)),
diff --git a/tools/run_in_ops b/tools/run_in_ops
new file mode 100755
index 0000000000..ebde8831d9
--- /dev/null
+++ b/tools/run_in_ops
@@ -0,0 +1,2 @@
+#! /bin/sh
+cd ../html/ops; ${*}