From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lucas Werkmeister Newsgroups: gmane.emacs.bugs Subject: bug#46022: 27.1; kill-emacs should call sd_notify only in daemon mode Date: Fri, 22 Jan 2021 10:47:49 +0100 Message-ID: <6b98486b-a5ff-72fd-5c9b-fe90858790ee@lucaswerkmeister.de> References: <1795381c3a29a50341502c2c020dccfcddf4be05.camel@timruffing.de> <837do66qcw.fsf@gnu.org> <6b2b3e7c-b8d0-7386-9ecb-fc3aabe262aa@lucaswerkmeister.de> <83lfcl5qoz.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="24153"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.1 Cc: public@timruffing.de, 46022@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Jan 22 10:48:30 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l2t3O-0006Az-NY for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 22 Jan 2021 10:48:30 +0100 Original-Received: from localhost ([::1]:32864 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l2t3N-0004FZ-MA for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 22 Jan 2021 04:48:29 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:43198) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l2t2x-0004EE-0Z for bug-gnu-emacs@gnu.org; Fri, 22 Jan 2021 04:48:04 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:48468) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1l2t2v-0005UF-Vm for bug-gnu-emacs@gnu.org; Fri, 22 Jan 2021 04:48:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1l2t2v-0003ad-UK for bug-gnu-emacs@gnu.org; Fri, 22 Jan 2021 04:48:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Lucas Werkmeister Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 22 Jan 2021 09:48:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 46022 X-GNU-PR-Package: emacs Original-Received: via spool by 46022-submit@debbugs.gnu.org id=B46022.161130887413783 (code B ref 46022); Fri, 22 Jan 2021 09:48:01 +0000 Original-Received: (at 46022) by debbugs.gnu.org; 22 Jan 2021 09:47:54 +0000 Original-Received: from localhost ([127.0.0.1]:60014 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l2t2o-0003aF-KH for submit@debbugs.gnu.org; Fri, 22 Jan 2021 04:47:54 -0500 Original-Received: from lucaswerkmeister.de ([46.4.66.178]:55802 helo=mail.lucaswerkmeister.de) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l2t2l-0003a5-PE for 46022@debbugs.gnu.org; Fri, 22 Jan 2021 04:47:52 -0500 Original-Received: from [IPv6:2a02:8109:92c0:22bb:d412:2b0:339e:ab21] (unknown [IPv6:2a02:8109:92c0:22bb:d412:2b0:339e:ab21]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: mail@lucaswerkmeister.de) by mail.lucaswerkmeister.de (Postfix) with ESMTPSA id 3DD06120BE9C; Fri, 22 Jan 2021 09:47:50 +0000 (UTC) Authentication-Results: mail.lucaswerkmeister.de; dmarc=fail (p=none dis=none) header.from=lucaswerkmeister.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lucaswerkmeister.de; s=mail; t=1611308870; bh=J9uCTMHkw6yxAUjAvBRma3HglOZiftTgMVX64akfUJM=; h=Subject:To:Cc:References:From:Message-ID:Date:MIME-Version: In-Reply-To:Content-Type:Content-Transfer-Encoding:From:Reply-To: Subject:Date:To:Cc:In-Reply-To:References:Message-Id:Sender: Content-Type:Content-Transfer-Encoding:Content-Disposition: Mime-Version; b=q1lTVtdwQ90ZUrSCpglSY4GKj5eDrSD/ec3FOO4WnEd25R1vAWPiRMwjh78IIr1WS OPbpZL8hP9JNNalbaf1buvUEz0M1+tamycn5qEPF51uxKuBS50xC6ZgRn+BLjWwD6/ Fewqeo3YlvXrKuPoe0n51GztYOshRIQT6tpVXNmg= In-Reply-To: <83lfcl5qoz.fsf@gnu.org> Content-Language: en-US-large X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:198364 Archived-At: On 22.01.21 09:19, Eli Zaretskii wrote: >> Cc: 46022@debbugs.gnu.org >> From: Lucas Werkmeister >> Date: Thu, 21 Jan 2021 21:12:03 +0100 >> >> Hm, I wasn’t aware systemd logged those warnings. Probably a good idea >> to guard the sd_notify(0, "STOPPING=1") with a guard on (a stashed copy >> of?) daemon_type, then, yes. > > OK, thanks. Does the patch below seems reasonable and give good > results? If yes, I'd like it to go into the upcoming Emacs 27.2. > > diff --git a/src/emacs.c b/src/emacs.c > index f2e858f..67220eb 100644 > --- a/src/emacs.c > +++ b/src/emacs.c > @@ -187,7 +187,8 @@ #define MAIN_PROGRAM > /* Name for the server started by the daemon.*/ > static char *daemon_name; > > -/* 0 not a daemon, 1 new-style (foreground), 2 old-style (background). */ > +/* 0 not a daemon, 1 new-style (foreground), 2 old-style (background). > + A negative value means the daemon initialization was already done. */ > int daemon_type; > > #ifndef WINDOWSNT > @@ -2371,7 +2372,10 @@ DEFUN ("kill-emacs", Fkill_emacs, Skill_emacs, 0, 1, "P", > int exit_code; > > #ifdef HAVE_LIBSYSTEMD > - sd_notify(0, "STOPPING=1"); > + /* Notify systemd we are shutting down, but only if we have notified > + it about startup. */ > + if (daemon_type == -1) > + sd_notify(0, "STOPPING=1"); > #endif /* HAVE_LIBSYSTEMD */ > > /* Fsignal calls emacs_abort () if it sees that waiting_for_input is > @@ -2876,7 +2880,7 @@ DEFUN ("daemon-initialized", Fdaemon_initialized, Sdaemon_initialized, 0, 0, 0, > } > > /* Set it to an invalid value so we know we've already run this function. */ > - daemon_type = -1; > + daemon_type = -daemon_type; > > #else /* WINDOWSNT */ > /* Signal the waiting emacsclient process. */ > That looks good to me. If daemon_type is 0, it will now stay at 0 instead of being marked as invalid, but that should be okay, since daemon-initialized has no special code for daemon_type == 0.