Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!aioe.org!news.stack.nl!newsfeed.xs4all.nl!newsfeed6.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.159 X-Spam-Level: * X-Spam-Evidence: '*H*': 0.70; '*S*': 0.01; 'context': 0.04; 'socket': 0.04; 'python': 0.08; 'alter': 0.09; 'library': 0.13; 'nature,': 0.16; 'nevertheless': 0.16; "doesn't": 0.22; 'wrote': 0.22; 'code': 0.25; "i'm": 0.26; 'bit': 0.28; 'problem': 0.29; 'anyone': 0.31; "i've": 0.31; 'yet': 0.32; 'header:User-Agent:1': 0.33; 'actually': 0.33; 'to:addr:python-list': 0.34; 'things': 0.34; 'surprised': 0.34; 'charset:us-ascii': 0.37; 'interface.': 0.37; 'but': 0.37; 'run': 0.37; 'list,': 0.37; 'some': 0.38; 'couple': 0.38; 'else': 0.39; "couldn't": 0.39; 'to:addr:python.org': 0.40; 'personal': 0.60; 'happen': 0.61; 'order': 0.62; 'dear': 0.64; 'share': 0.66; 'natural': 0.66; 'ways,': 0.67; 'ad-hoc': 0.84; 'commands.': 0.84; 'fredrik': 0.84; 'subject:management': 0.84; 'wheel': 0.84; 'lately,': 0.91; 'mine,': 0.91 Date: Tue, 27 Dec 2011 02:43:56 +0100 (CET) From: Fredrik Tolf To: python-list@python.org Subject: Daemon management User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.3.7 (nerv.dolda2000.com [IPv6:2002:54d9:e3a5:200::1]); Tue, 27 Dec 2011 02:43:57 +0100 (CET) X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 22 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1324950245 news.xs4all.nl 6961 [2001:888:2000:d::a6]:47682 X-Complaints-To: abuse@xs4all.nl Xref: x330-a1.tempe.blueboxinc.net comp.lang.python:18003 Dear list, Lately, I've had a personal itch to scratch, in that I run a couple of Python programs as daemons, and sometimes want to inspect or alter them in ad-hoc ways, or other times need to do things to them that are less ad-hoc in nature, but nevertheless lack a natural user interface. In order to solve that problem, I wrote a small library to allow the daemon to simply listen to some socket and accept arbitrary, but easily definable, commands. It also provides a "remote REPL" to allow me to run arbitrary Python code interactively in the context of the daemon. I was actually a bit surprised that I couldn't find any obvious existing solution to the problem, so I'm writing this message in order to share mine, just in case anyone else would happen to have the same problem as I had and doesn't want to reinvent the wheel yet again: Humbly, Fredrik Tolf