Commit e72a8e9c authored by Tres Seaver's avatar Tres Seaver

#2318: Allow override of zopectl's control socket in zope.conf

parent 10ce05e0
...@@ -26,6 +26,7 @@ Options: ...@@ -26,6 +26,7 @@ Options:
-l/--logfile -- log file to be read by logtail command -l/--logfile -- log file to be read by logtail command
-u/--user -- run the daemon manager program as this user (or numeric id) -u/--user -- run the daemon manager program as this user (or numeric id)
-m/--umask -- provide octal umask for files created by the managed process -m/--umask -- provide octal umask for files created by the managed process
-s/--socket-name -- socket between zopectl and zdrun
action [arguments] -- see below action [arguments] -- see below
Actions are commands like "start", "stop" and "status". If -i is Actions are commands like "start", "stop" and "status". If -i is
...@@ -45,6 +46,7 @@ import Zope2.Startup ...@@ -45,6 +46,7 @@ import Zope2.Startup
from zdaemon.zdctl import ZDCmd from zdaemon.zdctl import ZDCmd
from zdaemon.zdoptions import ZDOptions from zdaemon.zdoptions import ZDOptions
from ZConfig.components.logger.handlers import FileHandlerFactory from ZConfig.components.logger.handlers import FileHandlerFactory
from ZConfig.datatypes import existing_dirpath
def string_list(arg): def string_list(arg):
...@@ -86,6 +88,8 @@ class ZopeCtlOptions(ZDOptions): ...@@ -86,6 +88,8 @@ class ZopeCtlOptions(ZDOptions):
self.add("user", "runner.user", "u:", "user=") self.add("user", "runner.user", "u:", "user=")
self.add("prompt", "runner.prompt", default="zopectl>") self.add("prompt", "runner.prompt", default="zopectl>")
self.add("umask", "runner.umask", "m:", "umask=") self.add("umask", "runner.umask", "m:", "umask=")
self.add("sockname", "runner.socket_name", "s:", "socket-name=",
existing_dirpath, default=None)
def realize(self, *args, **kw): def realize(self, *args, **kw):
ZDOptions.realize(self, *args, **kw) ZDOptions.realize(self, *args, **kw)
...@@ -116,6 +120,9 @@ class ZopeCtlOptions(ZDOptions): ...@@ -116,6 +120,9 @@ class ZopeCtlOptions(ZDOptions):
self.program = config.runner.program self.program = config.runner.program
else: else:
self.program = [os.path.join(self.directory, "bin", "runzope")] self.program = [os.path.join(self.directory, "bin", "runzope")]
if config.runner and config.runner.socket_name:
self.sockname = config.runner.socket_name
else:
self.sockname = os.path.join(self.clienthome, "zopectlsock") self.sockname = os.path.join(self.clienthome, "zopectlsock")
self.python = sys.executable self.python = sys.executable
self.zdrun = os.path.join(os.path.dirname(zdaemon.__file__), self.zdrun = os.path.join(os.path.dirname(zdaemon.__file__),
......
...@@ -193,6 +193,17 @@ ...@@ -193,6 +193,17 @@
</description> </description>
</key> </key>
<key name="socket-name" datatype="existing-dirpath" required="no">
<description>
Command-line option: -s or --socket-name.
The pathname of the Unix domain socket used for communication
between zopectl.py and zdrun.py. The default is relative to the
current directory in which zdctl.py and zdrun.py are started.
You want to specify an absolute pathname here.
</description>
</key>
</sectiontype> </sectiontype>
<sectiontype name="zodb_db" datatype=".ZopeDatabase" <sectiontype name="zodb_db" datatype=".ZopeDatabase"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment