You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2010/08/22 07:02:06 UTC

svn commit: r987844 - in /tuscany/sca-cpp/trunk: modules/http/ modules/server/ samples/store-cluster/ samples/store-cluster/domains/jane/ samples/store-cluster/domains/joe/ samples/store-cluster/shared/

Author: jsdelfino
Date: Sun Aug 22 05:02:05 2010
New Revision: 987844

URL: http://svn.apache.org/viewvc?rev=987844&view=rev
Log:
Refactor store-cluster sample components to allow vhosts to share common cache and database components. Minor fixes to config scripts and wiring code to get that combination working.

Added:
    tuscany/sca-cpp/trunk/samples/store-cluster/shared/
    tuscany/sca-cpp/trunk/samples/store-cluster/shared/shared.composite
Modified:
    tuscany/sca-cpp/trunk/modules/http/httpd-ssl-conf
    tuscany/sca-cpp/trunk/modules/http/httpd.hpp
    tuscany/sca-cpp/trunk/modules/http/proxy-ssl-conf
    tuscany/sca-cpp/trunk/modules/server/mod-wiring.cpp
    tuscany/sca-cpp/trunk/samples/store-cluster/Makefile.am
    tuscany/sca-cpp/trunk/samples/store-cluster/domains/jane/store.composite
    tuscany/sca-cpp/trunk/samples/store-cluster/domains/joe/store.composite
    tuscany/sca-cpp/trunk/samples/store-cluster/proxy-ssl-conf
    tuscany/sca-cpp/trunk/samples/store-cluster/server-conf
    tuscany/sca-cpp/trunk/samples/store-cluster/server-ssl-conf
    tuscany/sca-cpp/trunk/samples/store-cluster/stop

Modified: tuscany/sca-cpp/trunk/modules/http/httpd-ssl-conf
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/modules/http/httpd-ssl-conf?rev=987844&r1=987843&r2=987844&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/modules/http/httpd-ssl-conf (original)
+++ tuscany/sca-cpp/trunk/modules/http/httpd-ssl-conf Sun Aug 22 05:02:05 2010
@@ -102,6 +102,14 @@ SSLOptions -StrictRequire +OptRenegotiat
 SSLVerifyClient optional
 SSLVerifyDepth 1
 
+# Enable SSL proxy engine
+SSLProxyEngine on
+SSLProxyCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
+
+# Verify server certificates
+SSLProxyVerify require
+SSLProxyVerifyDepth 1
+
 # Log SSL requests
 LogFormat "[%{%a %b %d %H:%M:%S %Y}t] [sslaccess] %h %l %u %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" \"%{SSL_CLIENT_I_DN}x\" \"%{SSL_CLIENT_S_DN}x\"" sslcombined
 CustomLog $root/logs/ssl_access_log sslcombined
@@ -201,6 +209,11 @@ cat >>$root/conf/vhost-ssl.conf <<EOF
 
 EOF
 
+proxycert="server"
+if [ "$proxyconf" != "" ]; then
+    proxycert="proxy"
+fi
+
 cat >$root/conf/svhost-ssl.conf <<EOF
 # Generated by: httpd-ssl-conf $*
 # Static virtual host configuration
@@ -212,6 +225,10 @@ SSLCertificateChainFile "$root/cert/ca.c
 SSLCertificateFile "$root/cert/server.crt"
 SSLCertificateKeyFile "$root/cert/server.key"
 
+# Declare proxy SSL client certificates
+SSLProxyCACertificateFile "$root/cert/ca.crt"
+SSLProxyMachineCertificateFile "$root/cert/$proxycert.pem"
+
 EOF
 
 cat >$root/conf/dvhost-ssl.conf <<EOF
@@ -225,5 +242,9 @@ SSLCertificateChainFile "$root/cert/ca.c
 SSLCertificateFile "$root/cert/vhost.crt"
 SSLCertificateKeyFile "$root/cert/vhost.key"
 
+# Declare proxy SSL client certificates
+SSLProxyCACertificateFile "$root/cert/ca.crt"
+SSLProxyMachineCertificateFile "$root/cert/$proxycert.pem"
+
 EOF
 

Modified: tuscany/sca-cpp/trunk/modules/http/httpd.hpp
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/modules/http/httpd.hpp?rev=987844&r1=987843&r2=987844&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/modules/http/httpd.hpp (original)
+++ tuscany/sca-cpp/trunk/modules/http/httpd.hpp Sun Aug 22 05:02:05 2010
@@ -128,7 +128,21 @@ const string subdomain(const string& hos
  * Return true if a request is targeting a virtual host.
  */
 const bool isVirtualHostRequest(const server_rec* s, request_rec* r) {
-    return serverName(r) != serverName(s);
+    return hostName(r) != hostName(s);
+}
+
+/**
+ * Return the protocol scheme for a server.
+ */
+const string scheme(const server_rec* s, const string& def = "http") {
+    return s->server_scheme != NULL? s->server_scheme : def;
+}
+
+/**
+ * Return the protocol scheme from an HTTP request.
+ */
+const string scheme(request_rec* r, const string& def = "http") {
+    return r->server->server_scheme != NULL? r->server->server_scheme : def;
 }
 
 /**
@@ -306,10 +320,11 @@ const failable<request_rec*, int> intern
     nr->method_number = r->method_number;
     nr->allowed_methods = ap_make_method_list(nr->pool, 2);
     ap_parse_uri(nr, apr_pstrdup(nr->pool, c_str(nr_uri)));
+    nr->filename = apr_pstrdup(nr->pool, c_str(string("/redirected:") + nr_uri));
     nr->request_config = ap_create_request_config(r->pool);
     nr->per_dir_config = r->server->lookup_defaults;
     nr->prev = r;
-    r->next   = nr;
+    r->next = nr;
 
     // Run create request hook
     ap_run_create_request(nr);
@@ -382,6 +397,7 @@ const int internalRedirect(request_rec* 
  * Create and process an HTTPD internal redirect request.
  */
 const int internalRedirect(const string& uri, request_rec* r) {
+    debug(uri, "httpd::internalRedirect");
     const failable<request_rec*, int> nr = httpd::internalRedirectRequest(uri, r);
     if (!hasContent(nr))
         return reason(nr);

Modified: tuscany/sca-cpp/trunk/modules/http/proxy-ssl-conf
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/modules/http/proxy-ssl-conf?rev=987844&r1=987843&r2=987844&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/modules/http/proxy-ssl-conf (original)
+++ tuscany/sca-cpp/trunk/modules/http/proxy-ssl-conf Sun Aug 22 05:02:05 2010
@@ -48,21 +48,5 @@ Allow from all
 Require user admin
 </Location> 
 
-# Enable SSL proxy engine
-SSLProxyEngine on
-SSLProxyCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
-
-# Verify server certificates
-SSLProxyVerify require
-SSLProxyVerifyDepth 1
-
-EOF
-
-cat >>$root/conf/vhost-ssl.conf <<EOF
-# Generated by: proxy-ssl-conf $*
-# Declare the proxy SSL client certificates
-SSLProxyCACertificateFile "$root/cert/ca.crt"
-SSLProxyMachineCertificateFile "$root/cert/proxy.pem"
-
 EOF
 

Modified: tuscany/sca-cpp/trunk/modules/server/mod-wiring.cpp
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/modules/server/mod-wiring.cpp?rev=987844&r1=987843&r2=987844&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/modules/server/mod-wiring.cpp (original)
+++ tuscany/sca-cpp/trunk/modules/server/mod-wiring.cpp Sun Aug 22 05:02:05 2010
@@ -109,7 +109,9 @@ int translateReference(const ServerConf&
     // Route to an absolute target URI using mod_proxy or an HTTP client redirect
     if (isAbsolute(target)) {
         if (useModProxy) {
-            r->filename = apr_pstrdup(r->pool, c_str(string("proxy:") + target));
+            // Build proxy URI using current request's protocol scheme
+            r->filename = apr_pstrdup(r->pool, c_str(string("proxy:") + httpd::scheme(r) + substr(target, find(target, "://"))));
+            debug(r->filename, "modwiring::translateReference::filename");
             r->proxyreq = PROXYREQ_REVERSE;
             r->handler = "proxy-server";
             return OK;
@@ -117,12 +119,15 @@ int translateReference(const ServerConf&
 
         r->status = HTTP_MOVED_TEMPORARILY;
         apr_table_setn(r->headers_out, "Location", apr_pstrdup(r->pool, c_str(target)));
+        r->filename = apr_pstrdup(r->pool, c_str(string("/redirect:/") + target));
+        debug(target, "modwiring::translateReference::location");
         r->handler = "mod_tuscany_wiring";
         return OK;
     }
 
     // Route to a relative target URI using a local internal redirect
     r->filename = apr_pstrdup(r->pool, c_str(string("/redirect:/components/") + substr(target, 0, find(target, '/'))));
+    debug(r->filename, "modwiring::translateReference::filename");
     r->handler = "mod_tuscany_wiring";
     return OK;
 }
@@ -310,7 +315,7 @@ int translate(request_rec *r) {
     gc_scoped_pool pool(r->pool);
     const ServerConf& sc = httpd::serverConf<ServerConf>(r, &mod_tuscany_wiring);
 
-    // Process dynamic virtual host configuration, if any
+    // Process dynamic virtual host configuration
     VirtualHostConf vhc(sc);
     const bool usevh = hasVirtualCompositeConf(vhc.sc) && httpd::isVirtualHostRequest(sc.server, r);
     if (usevh) {
@@ -338,14 +343,17 @@ int handler(request_rec *r) {
     if (r->filename == NULL || strncmp(r->filename, "/redirect:", 10) != 0)
         return DECLINED;
 
+    // Nothing to do for an external redirect
+    if (r->status == HTTP_MOVED_TEMPORARILY)
+        return OK;
+
+    // Do an internal redirect
     gc_scoped_pool pool(r->pool);
     httpdDebugRequest(r, "modwiring::handler::input");
 
-    // Do an internal redirect
     debug(r->uri, "modwiring::handler::uri");
     debug(r->filename, "modwiring::handler::filename");
     debug(r->path_info, "modwiring::handler::path info");
-
     if (r->args == NULL)
         return httpd::internalRedirect(httpd::redirectURI(string(r->filename + 10), string(r->path_info)), r);
     return httpd::internalRedirect(httpd::redirectURI(string(r->filename + 10), string(r->path_info), string(r->args)), r);

Modified: tuscany/sca-cpp/trunk/samples/store-cluster/Makefile.am
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-cluster/Makefile.am?rev=987844&r1=987843&r2=987844&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-cluster/Makefile.am (original)
+++ tuscany/sca-cpp/trunk/samples/store-cluster/Makefile.am Sun Aug 22 05:02:05 2010
@@ -24,7 +24,7 @@ if WANT_QUEUE
 dist_sample_SCRIPTS = start stop ssl-start ssl-stop proxy-conf proxy-ssl-conf server-conf server-ssl-conf tunnel-ssl-conf sqldb-master-conf sqldb-standby-conf
 sampledir = $(prefix)/samples/store-cluster
 
-nobase_dist_sample_DATA = htdocs/*.html htdocs/domains/*/*.html domains/*/*.py domains/*/*.composite
+nobase_dist_sample_DATA = htdocs/*.html htdocs/domains/*/*.html domains/*/*.py domains/*/*.composite shared/*.composite
 
 dist_noinst_SCRIPTS = server-test
 #TESTS = server-test

Modified: tuscany/sca-cpp/trunk/samples/store-cluster/domains/jane/store.composite
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-cluster/domains/jane/store.composite?rev=987844&r1=987843&r2=987844&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-cluster/domains/jane/store.composite (original)
+++ tuscany/sca-cpp/trunk/samples/store-cluster/domains/jane/store.composite Sun Aug 22 05:02:05 2010
@@ -51,7 +51,7 @@
         <service name="Total">
             <t:binding.jsonrpc uri="total"/>
         </service>        
-        <reference name="cache" target="Cache"/>
+        <reference name="cache" target="http://sca-store.com/cache"/>
     </component>
     
     <component name="CurrencyConverter">
@@ -61,41 +61,4 @@
         </service>
     </component>
 
-    <component name="Cache">
-        <implementation.cpp path="../../../../components/cache" library="libfrontcache"/>
-        <service name="Cache">
-            <t:binding.atom uri="cache"/>
-        </service>
-        <reference name="l1reader" target="Memcache"/>
-        <reference name="l1writer" target="Memcache"/>
-        <reference name="l2reader" target="Standbydb"/>
-        <reference name="l2writer" target="Masterdb"/>
-    </component>
-
-    <component name="Memcache">
-        <implementation.cpp path="../../../../components/cache" library="libmemcache"/>
-        <service name="Memcache">
-            <t:binding.atom uri="memcache"/>
-        </service>
-        <property name="servers">localhost:11211,localhost:11212,localhost:11213</property>
-    </component>
-
-    <component name="Masterdb">
-        <implementation.cpp path="../../../../components/sqldb" library="libsqldb"/>
-        <property name="conninfo">host=localhost port=5432 dbname=db</property>
-        <property name="table">store</property>
-        <service name="Masterdb">
-            <t:binding.atom uri="masterdb"/>
-        </service>
-    </component>
-
-    <component name="Standbydb">
-        <implementation.cpp path="../../../../components/sqldb" library="libsqldb"/>
-        <property name="conninfo">host=localhost port=5433 dbname=db</property>
-        <property name="table">store</property>
-        <service name="Standbydb">
-            <t:binding.atom uri="standbydb"/>
-        </service>
-    </component>
-
 </composite>

Modified: tuscany/sca-cpp/trunk/samples/store-cluster/domains/joe/store.composite
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-cluster/domains/joe/store.composite?rev=987844&r1=987843&r2=987844&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-cluster/domains/joe/store.composite (original)
+++ tuscany/sca-cpp/trunk/samples/store-cluster/domains/joe/store.composite Sun Aug 22 05:02:05 2010
@@ -51,7 +51,7 @@
         <service name="Total">
             <t:binding.jsonrpc uri="total"/>
         </service>        
-        <reference name="cache" target="Cache"/>
+        <reference name="cache" target="http://sca-store.com/cache"/>
     </component>
     
     <component name="CurrencyConverter">
@@ -61,41 +61,4 @@
         </service>
     </component>
 
-    <component name="Cache">
-        <implementation.cpp path="../../../../components/cache" library="libfrontcache"/>
-        <service name="Cache">
-            <t:binding.atom uri="cache"/>
-        </service>
-        <reference name="l1reader" target="Memcache"/>
-        <reference name="l1writer" target="Memcache"/>
-        <reference name="l2reader" target="Standbydb"/>
-        <reference name="l2writer" target="Masterdb"/>
-    </component>
-
-    <component name="Memcache">
-        <implementation.cpp path="../../../../components/cache" library="libmemcache"/>
-        <service name="Memcache">
-            <t:binding.atom uri="memcache"/>
-        </service>
-        <property name="servers">localhost:11211,localhost:11212,localhost:11213</property>
-    </component>
-
-    <component name="Masterdb">
-        <implementation.cpp path="../../../../components/sqldb" library="libsqldb"/>
-        <property name="conninfo">host=localhost port=5432 dbname=db</property>
-        <property name="table">store</property>
-        <service name="Masterdb">
-            <t:binding.atom uri="masterdb"/>
-        </service>
-    </component>
-
-    <component name="Standbydb">
-        <implementation.cpp path="../../../../components/sqldb" library="libsqldb"/>
-        <property name="conninfo">host=localhost port=5434 dbname=db</property>
-        <property name="table">store</property>
-        <service name="Standbydb">
-            <t:binding.atom uri="standbydb"/>
-        </service>
-    </component>
-
 </composite>

Modified: tuscany/sca-cpp/trunk/samples/store-cluster/proxy-ssl-conf
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-cluster/proxy-ssl-conf?rev=987844&r1=987843&r2=987844&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-cluster/proxy-ssl-conf (original)
+++ tuscany/sca-cpp/trunk/samples/store-cluster/proxy-ssl-conf Sun Aug 22 05:02:05 2010
@@ -30,3 +30,8 @@ tar -C tmp/ssl -c `../../modules/http/ss
 ../../modules/http/vhost-ssl-conf $root
 ../../modules/http/proxy-ssl-conf $root
 
+# Aggregate proxy balancer logs
+category=`basename $root`
+../../components/log/scribe-tail-start $category $root/logs/error_log
+../../components/log/scribe-tail-start $category $root/logs/access_log
+

Modified: tuscany/sca-cpp/trunk/samples/store-cluster/server-conf
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-cluster/server-conf?rev=987844&r1=987843&r2=987844&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-cluster/server-conf (original)
+++ tuscany/sca-cpp/trunk/samples/store-cluster/server-conf Sun Aug 22 05:02:05 2010
@@ -26,6 +26,10 @@ port=$2
 ../../modules/server/server-conf $root
 ../../modules/python/python-conf $root
 cat >>$root/conf/httpd.conf <<EOF
+# Configure SCA Composite
+SCAContribution `pwd`/shared/
+SCAComposite shared.composite
+
 # Configure SCA Composite for mass dynamic virtual hosting
 SCAVirtualContribution `pwd`/domains/
 SCAVirtualComposite store.composite

Modified: tuscany/sca-cpp/trunk/samples/store-cluster/server-ssl-conf
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-cluster/server-ssl-conf?rev=987844&r1=987843&r2=987844&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-cluster/server-ssl-conf (original)
+++ tuscany/sca-cpp/trunk/samples/store-cluster/server-ssl-conf Sun Aug 22 05:02:05 2010
@@ -27,11 +27,16 @@ sslport=$3
 tar -C tmp/ssl -c `../../modules/http/ssl-cert-find tmp/ssl` | tar -C $root -x
 ../../modules/http/httpd-ssl-conf $root $sslport/443
 ../../modules/http/vhost-ssl-conf $root
+#../../modules/http/httpd-auth-conf $root
 ../../modules/openid/openid-conf $root
 ../../modules/openid/openid-step2-conf $root
 ../../modules/server/server-conf $root
 ../../modules/python/python-conf $root
 cat >>$root/conf/httpd.conf <<EOF
+# Configure SCA Composite
+SCAContribution `pwd`/shared/
+SCAComposite shared.composite
+
 # Configure SCA Composite for mass dynamic virtual hosting
 SCAVirtualContribution `pwd`/domains/
 SCAVirtualComposite store.composite

Added: tuscany/sca-cpp/trunk/samples/store-cluster/shared/shared.composite
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-cluster/shared/shared.composite?rev=987844&view=auto
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-cluster/shared/shared.composite (added)
+++ tuscany/sca-cpp/trunk/samples/store-cluster/shared/shared.composite Sun Aug 22 05:02:05 2010
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+  xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1"
+  targetNamespace="http://shared"
+  name="shared">
+        
+    <component name="Cache">
+        <implementation.cpp path="../../../components/cache" library="libfrontcache"/>
+        <service name="Cache">
+            <t:binding.atom uri="cache"/>
+        </service>
+        <reference name="l1reader" target="Memcache"/>
+        <reference name="l1writer" target="Memcache"/>
+        <reference name="l2reader" target="Standbydb"/>
+        <reference name="l2writer" target="Masterdb"/>
+    </component>
+
+    <component name="Memcache">
+        <implementation.cpp path="../../../components/cache" library="libmemcache"/>
+        <service name="Memcache">
+            <t:binding.atom uri="memcache"/>
+        </service>
+        <property name="servers">localhost:11211,localhost:11212,localhost:11213</property>
+    </component>
+
+    <component name="Masterdb">
+        <implementation.cpp path="../../../components/sqldb" library="libsqldb"/>
+        <property name="conninfo">host=localhost port=5432 dbname=db</property>
+        <property name="table">store</property>
+        <service name="Masterdb">
+            <t:binding.atom uri="masterdb"/>
+        </service>
+    </component>
+
+    <component name="Standbydb">
+        <implementation.cpp path="../../../components/sqldb" library="libsqldb"/>
+        <property name="conninfo">host=localhost port=5433 dbname=db</property>
+        <property name="table">store</property>
+        <service name="Standbydb">
+            <t:binding.atom uri="standbydb"/>
+        </service>
+    </component>
+
+</composite>

Modified: tuscany/sca-cpp/trunk/samples/store-cluster/stop
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-cluster/stop?rev=987844&r1=987843&r2=987844&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-cluster/stop (original)
+++ tuscany/sca-cpp/trunk/samples/store-cluster/stop Sun Aug 22 05:02:05 2010
@@ -19,10 +19,6 @@
 
 set -x
 
-../../components/sqldb/pgsql-stop tmp/server2
-../../components/sqldb/pgsql-stop tmp/server3
-../../components/sqldb/pgsql-stop tmp/server1
-
 ../../modules/http/httpd-stop tmp/server1
 ../../modules/http/httpd-stop tmp/server2
 ../../modules/http/httpd-stop tmp/server3
@@ -34,6 +30,13 @@ set -x
 ../../components/cache/memcached-stop 11212
 ../../components/cache/memcached-stop 11213
 
+../../components/sqldb/pgsql-stop tmp/sqldb3
+../../modules/http/httpd-stop tmp/sqldb3
+../../components/sqldb/pgsql-stop tmp/sqldb2
+../../modules/http/httpd-stop tmp/sqldb2
+../../components/sqldb/pgsql-stop tmp/sqldb1
+../../modules/http/httpd-stop tmp/sqldb1
+
 ../../components/log/scribed-client-stop tmp/monitor
 ../../components/log/scribed-central-stop tmp/monitor
 ../../components/log/scribe-tail-stop tmp