From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Tim Ruffing Newsgroups: gmane.emacs.bugs Subject: bug#45181: 27.1; exit status and emacs.service Date: Fri, 11 Dec 2020 17:28:52 +0100 Message-ID: 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="2086"; mail-complaints-to="usenet@ciao.gmane.io" To: 45181@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Dec 11 17:48:56 2020 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 1knlbC-0000PN-EX for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 11 Dec 2020 17:48:54 +0100 Original-Received: from localhost ([::1]:51128 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1knlbB-0004pv-Ao for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 11 Dec 2020 11:48:53 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44260) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1knlYQ-0003Zx-DB for bug-gnu-emacs@gnu.org; Fri, 11 Dec 2020 11:46:04 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:59466) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1knlYQ-0001eL-4s for bug-gnu-emacs@gnu.org; Fri, 11 Dec 2020 11:46:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1knlYQ-0003xC-3J for bug-gnu-emacs@gnu.org; Fri, 11 Dec 2020 11:46:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Tim Ruffing Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 11 Dec 2020 16:46:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 45181 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.160770510515095 (code B ref -1); Fri, 11 Dec 2020 16:46:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 11 Dec 2020 16:45:05 +0000 Original-Received: from localhost ([127.0.0.1]:42774 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1knlXU-0003vO-G3 for submit@debbugs.gnu.org; Fri, 11 Dec 2020 11:45:05 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:57782) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1knlI4-0003UY-Rf for submit@debbugs.gnu.org; Fri, 11 Dec 2020 11:29:10 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:40352) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1knlI4-0005G8-DE for bug-gnu-emacs@gnu.org; Fri, 11 Dec 2020 11:29:08 -0500 Original-Received: from mout-p-202.mailbox.org ([2001:67c:2050::465:202]:63766) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_CHACHA20_POLY1305:256) (Exim 4.90_1) (envelope-from ) id 1knlI1-0003l2-6N for bug-gnu-emacs@gnu.org; Fri, 11 Dec 2020 11:29:08 -0500 Original-Received: from smtp2.mailbox.org (smtp2.mailbox.org [IPv6:2001:67c:2050:105:465:1:2:0]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-202.mailbox.org (Postfix) with ESMTPS id 4Csx7G3QMFzQlQj for ; Fri, 11 Dec 2020 17:28:58 +0100 (CET) X-Virus-Scanned: amavisd-new at heinlein-support.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=timruffing.de; s=MBO0001; t=1607704136; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LBUwDvWHK4Sd7jyI/7Uu2HYM6OgZem8GCxsqZwQkm38=; b=NKDbHSKuVOJ4Pxdy34YPSb2KLiJ/7jAcBXpL6fqxiBO2TqUANfj6DsG54MEqxPAU6pahUy 5mgH2pzsTsGI9OYGcHdi3r1Eo90isJUc8vdb1MG0Qcs+ZqhGgsS7Fj1gJ2cNTWgvGDRGxI g1ASddI0w8UoL0sIM9wqTaC7Z3rI2Y/bmdleDNa9AbYzpzXcheWdvGv1txWqs4mdC4v9hn X3i1/CjFSr7S6LMVAIdtF5sKCLxFrfqh4sV8vYMggDsLZGc9ZgtEF+FWFUPiwnlxWpzKAe jAEeTkbb8Pl2RwRhWIumkOh+e4SFAJu+KWS1uqFEosCno0zWGAwmJK2Jj8ZLww== Original-Received: from smtp2.mailbox.org ([80.241.60.241]) by spamfilter02.heinlein-hosting.de (spamfilter02.heinlein-hosting.de [80.241.56.116]) (amavisd-new, port 10030) with ESMTP id wTx66SwrKfGY for ; Fri, 11 Dec 2020 17:28:54 +0100 (CET) X-Rspamd-Score: -6.09 / 15.00 / 15.00 X-Rspamd-Queue-Id: DA88E17C5 X-Rspamd-UID: 594558 Received-SPF: pass client-ip=2001:67c:2050::465:202; envelope-from=public@timruffing.de; helo=mout-p-202.mailbox.org X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Fri, 11 Dec 2020 11:45:03 -0500 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:195787 Archived-At: The current emacs.service file contains the line   'ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)"' I think there are two minor issues with that line. First, it's redundant. If this line is removed, systemd will default to sending SIGTERM and emacs will call kill-emacs on SIGTERM. Second, I don't think this is really doing what is intended. Sure, emacsclient is invoking kill-emacs but the systemd will later tell me that emacs was not cleanly stopped. Here's sample output of "systemctl --user status emacs" after "systemctl --user stop emacs". Note the "failed (Result: exit-code)". ● emacs.service - Emacs text editor Loaded: loaded (/home/tim/.config/systemd/user/emacs.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Fri 2020-12-11 15:10:53 CET; 19min ago Docs: info:emacs man:emacs(1) https://gnu.org/software/emacs/ Process: 3523 ExecStart=/usr/bin/emacs --fg-daemon (code=exited, status=15) Process: 4121 ExecStop=/usr/bin/emacsclient --eval (kill-emacs) (code=exited, status=0/SUCCESS) Main PID: 3523 (code=exited, status=15) The problem here is the exit code 15, which emacs will return *only* if it has received SIGTERM. I believe what's happening here is that emacsclient will call kill-emacs but not wait until the emacs server has properly shut down. However, it's supposed to wait for the shutdown as an "ExecStop" command according to "man systemd.service". So since the process is still alive when emacsclient comes back, systemd will still issue SIGTERM, making emacs return 15 (maybe after calling kill- emacs again?!). I verified that if I spawn the server manually and invoke "/usr/bin/emacsclient --eval "(kill-emacs)"" manually, then the server will exit with status 0. I think the proper thing to do is - remove the ExecStop line (it's at least redundant and confusing) - add SuccessExitStatus=15 (to tell systemd that 15 is fine) Best, Tim In GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.22, cairo version 1.17.3) of 2020-08-28 built on juergen Windowing system distributor 'The X.Org Foundation', version 11.0.12099001 System Description: Arch Linux Configured using: 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib --localstatedir=/var --with-x-toolkit=gtk3 --with-xft --with-wide-int --with-modules --with-cairo --with-harfbuzz 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt' CPPFLAGS=-D_FORTIFY_SOURCE=2 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now' Configured features: XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND GPM DBUS GSETTINGS GLIB NOTIFY INOTIFY ACL GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS LIBSYSTEMD JSON PDUMPER LCMS2 GMP Important settings: value of $LC_COLLATE: de_DE.UTF-8 value of $LC_CTYPE: de_DE.UTF-8 value of $LC_MESSAGES: en_US.UTF-8 value of $LC_MONETARY: de_DE.UTF-8 value of $LC_NUMERIC: de_DE.UTF-8 value of $LC_TIME: de_DE.UTF-8 value of $LANG: en_US.utf8 locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t global-eldoc-mode: t eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs format-spec rfc822 mml easymenu mml-sec password-cache epa derived epg epg-config gnus-util rmail rmail-loaddefs text-property-search time- date subr-x seq byte-opt gv bytecomp byte-compile cconv mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader cl- loaddefs cl-lib sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail- utils tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp- mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 45785 10306) (symbols 48 6004 1) (strings 32 15644 1809) (string-bytes 1 511947) (vectors 16 10258) (vector-slots 8 133231 10154) (floats 8 19 43) (intervals 56 206 0) (buffers 1000 11))