[Erp5-report] r45648 luke - /erp5/trunk/utils/slapos.recipe.erp5/src/slapos/recipe/erp5/
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Apr 22 15:21:36 CEST 2011
Author: luke
Date: Fri Apr 22 15:21:35 2011
New Revision: 45648
URL: http://svn.erp5.org?rev=45648&view=rev
Log:
- register zeo rotation and add utility script to send any signal to pid value stored in file
Added:
erp5/trunk/utils/slapos.recipe.erp5/src/slapos/recipe/erp5/killpidfromfile.py
Modified:
erp5/trunk/utils/slapos.recipe.erp5/src/slapos/recipe/erp5/__init__.py
Modified: erp5/trunk/utils/slapos.recipe.erp5/src/slapos/recipe/erp5/__init__.py
URL: http://svn.erp5.org/erp5/trunk/utils/slapos.recipe.erp5/src/slapos/recipe/erp5/__init__.py?rev=45648&r1=45647&r2=45648&view=diff
==============================================================================
--- erp5/trunk/utils/slapos.recipe.erp5/src/slapos/recipe/erp5/__init__.py [utf8] (original)
+++ erp5/trunk/utils/slapos.recipe.erp5/src/slapos/recipe/erp5/__init__.py [utf8] Fri Apr 22 15:21:35 2011
@@ -55,6 +55,10 @@ class Recipe(BaseSlapRecipe):
# self.cron_d is a directory, where cron jobs can be registered
self.cron_d = self.installCrond()
self.logrotate_d = self.installLogrotate()
+ self.killpidfromfile = zc.buildout.easy_install.scripts(
+ [('killpidfromfile', __name__ + '.killpidfromfile',
+ 'killpidfromfile')], self.ws, sys.executable, self.bin_directory)[0]
+ self.path_list.append(self.killpidfromfile)
ca_conf = self.installCertificateAuthority()
memcached_conf = self.installMemcached(ip=self.getLocalIPv4Address(),
port=11000)
@@ -460,12 +464,16 @@ class Recipe(BaseSlapRecipe):
return []
def installZeo(self, ip, port, name, path):
+ zeo_event_log = os.path.join(self.log_directory, 'zeo.log')
+ zeo_pid = os.path.join(self.run_directory, 'zeo.pid')
+ self.registerLogRotation('zeo', [zeo_event_log],
+ self.killpidfromfile + ' ' + zeo_pid + ' SIGUSR2')
config = dict(
zeo_ip=ip,
zeo_port=port,
zeo_storagename=name,
- zeo_event_log=os.path.join(self.log_directory, 'zeo.log'),
- zeo_pid=os.path.join(self.run_directory, 'zeo.pid'),
+ zeo_event_log=zeo_event_log,
+ zeo_pid=zeo_pid,
zeo_zodb=path
)
zeo_conf_path = self.createConfigurationFile('zeo.conf',
Added: erp5/trunk/utils/slapos.recipe.erp5/src/slapos/recipe/erp5/killpidfromfile.py
URL: http://svn.erp5.org/erp5/trunk/utils/slapos.recipe.erp5/src/slapos/recipe/erp5/killpidfromfile.py?rev=45648&view=auto
==============================================================================
--- erp5/trunk/utils/slapos.recipe.erp5/src/slapos/recipe/erp5/killpidfromfile.py (added)
+++ erp5/trunk/utils/slapos.recipe.erp5/src/slapos/recipe/erp5/killpidfromfile.py [utf8] Fri Apr 22 15:21:35 2011
@@ -0,0 +1,12 @@
+import sys
+import os
+import signal
+def killpidfromfile():
+ file = sys.argv[1]
+ sig = getattr(signal, sys.argv[2], None)
+ if sig is None:
+ raise ValueError('Unknwon signal name %s' % sys.argv[2])
+ if os.path.exists(file):
+ pid = int(open(file).read())
+ print 'Killing pid %s with signal %s' % (pid, sys.argv[2])
+ os.kill(pid, sig)
More information about the Erp5-report
mailing list