Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.xs4all.nl!newsfeed4.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!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.052 X-Spam-Evidence: '*H*': 0.90; '*S*': 0.00; 'anyway.': 0.05; 'indeed,': 0.09; 'subject:skip:c 10': 0.09; 'cc:addr:python-list': 0.11; 'above)': 0.16; 'choice,': 0.16; 'daemon,': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'low.': 0.16; 'reload': 0.16; 'wrote:': 0.18; 'command': 0.22; 'example': 0.22; 'cc:addr:python.org': 0.22; 'config': 0.24; 'fairly': 0.24; 'cc:2**0': 0.24; 'header:In-Reply-To:1': 0.27; 'generally': 0.29; 'unix': 0.29; 'moved': 0.30; 'strongly': 0.30; 'message-id:@mail.gmail.com': 0.30; 'usually': 0.31; 'file': 0.32; 'linux': 0.33; 'cases': 0.33; 'fri,': 0.33; 'something': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'complete.': 0.36; 'doing': 0.36; 'handle': 0.38; 'pm,': 0.38; 'rather': 0.38; 'that,': 0.38; 'even': 0.60; 'signal': 0.60; 'most': 0.60; "you'll": 0.62; 'maximum': 0.63; 'situation': 0.65; 'services': 0.66; 'mar': 0.68; 'other.': 0.75; '2015': 0.84; 'asynchronous': 0.84; 'edwards': 0.91; 'to:none': 0.92 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:cc :content-type; bh=itdzF1nP9CVxf6WbTDGFHhWubqId+frTz8IlHE9MinU=; b=OXE1yVjNkW94tzwZ7xEYQCdJn2k6vTREp3mVQBKhwmO6FRs0+FYc4hcduZy4WWEpIl 15i3gzzVD+ExbxFUd73O1ho78/9CvOl8S3rpI3euq+eWNy2zSXZj8JmDByV+WzYYFCsG VsQiCk8QPHwKa0B/BVqXYz2GXp9IdleN2Psr7FgtWe7EIEn5zcy1ZfeHUr3nFKE8Juac 73UPqDJGQZscn+Zwa8/CYuXmVRN8gRX8jsZGKkNG5bS4UUnYfXiWw1OBYTd1Kys/fxoL ub/WKWhF3eAvOAKLCdOCN7BhF3nPJX8PcLpo56v7vqoAaVc0EXdcFL+0XKejno9+oheG jDug== MIME-Version: 1.0 X-Received: by 10.50.79.161 with SMTP id k1mr4979791igx.14.1427461942553; Fri, 27 Mar 2015 06:12:22 -0700 (PDT) In-Reply-To: <87h9t6n7wi.fsf@elektro.pacujo.net> References: <87h9t6n7wi.fsf@elektro.pacujo.net> Date: Sat, 28 Mar 2015 00:12:22 +1100 Subject: Re: What is elegant way to do configuration on server app From: Chris Angelico Cc: "python-list@python.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.19 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: 28 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1427461945 news.xs4all.nl 2952 [2001:888:2000:d::a6]:35172 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:88147 On Fri, Mar 27, 2015 at 7:47 PM, Marko Rauhamaa wrote: > Grant Edwards : > >> That sounds rather Windowsesque. The more-or-less standard way to do >> handle the situation on Unix is to reread the config file when you get >> a SIGHUP. > > That, indeed, is the classic Unix way. However, Linux has now moved to > systemd: > > Note however that reloading a daemon by sending a signal (as with > the example line above) is usually not a good choice, because > this is an asynchronous operation and hence not suitable to order > reloads of multiple services against each other. It is strongly > recommended to set ExecReload= to a command that not only > triggers a configuration reload of the daemon, but also > synchronously waits for it to complete. The number of cases where this matters is fairly low. Doing the reload asynchronously is generally sufficient. And even if you have something that waits for the reload to finish, you'll usually fire-and-forget that command anyway. For maximum portability, most programs are going to want to continue to respond to SIGHUP, even if they do a systemd-triggered reload some other way. ChrisA