From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Lucas Werkmeister Newsgroups: gmane.emacs.bugs Subject: bug#31498: [PATCH] Notify systemd in daemon-initialized Date: Fri, 18 May 2018 19:40:31 +0200 Message-ID: <20180518174031.12514-1-mail@lucaswerkmeister.de> NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1526665612 4832 195.159.176.226 (18 May 2018 17:46:52 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 18 May 2018 17:46:52 +0000 (UTC) Cc: Lucas Werkmeister To: 31498@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri May 18 19:46:48 2018 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fJjSp-000179-OX for geb-bug-gnu-emacs@m.gmane.org; Fri, 18 May 2018 19:46:48 +0200 Original-Received: from localhost ([::1]:40278 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fJjUv-00019Y-3F for geb-bug-gnu-emacs@m.gmane.org; Fri, 18 May 2018 13:48:57 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:41843) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fJjSC-0007Fs-30 for bug-gnu-emacs@gnu.org; Fri, 18 May 2018 13:46:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fJjS7-000385-5D for bug-gnu-emacs@gnu.org; Fri, 18 May 2018 13:46:08 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:60397) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fJjS7-00037x-0m for bug-gnu-emacs@gnu.org; Fri, 18 May 2018 13:46:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fJjS6-0008Ly-L5 for bug-gnu-emacs@gnu.org; Fri, 18 May 2018 13:46:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Lucas Werkmeister Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 18 May 2018 17:46:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 31498 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.152666553532066 (code B ref -1); Fri, 18 May 2018 17:46:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 18 May 2018 17:45:35 +0000 Original-Received: from localhost ([127.0.0.1]:40061 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fJjRe-0008L7-O8 for submit@debbugs.gnu.org; Fri, 18 May 2018 13:45:34 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:49153) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fJjN2-0008CH-EE for submit@debbugs.gnu.org; Fri, 18 May 2018 13:40:48 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fJjMw-0000m9-8M for submit@debbugs.gnu.org; Fri, 18 May 2018 13:40:43 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:48798) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fJjMw-0000m3-4T for submit@debbugs.gnu.org; Fri, 18 May 2018 13:40:42 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:40114) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fJjMu-00029o-RS for bug-gnu-emacs@gnu.org; Fri, 18 May 2018 13:40:41 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fJjMr-0000kd-Q7 for bug-gnu-emacs@gnu.org; Fri, 18 May 2018 13:40:40 -0400 Original-Received: from lucaswerkmeister.de ([94.130.58.99]:38978) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fJjMr-0000jp-Ft for bug-gnu-emacs@gnu.org; Fri, 18 May 2018 13:40:37 -0400 Original-Received: from theoden.lucaswerkmeister.de.home (unknown [IPv6:2a02:8109:92c0:22bb:d412:2b0:339e:ab21]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: mail@lucaswerkmeister.de) by lucaswerkmeister.de (Postfix) with ESMTPSA id 27F8836DA42; Fri, 18 May 2018 19:40:34 +0200 (CEST) Authentication-Results: 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=1526665235; bh=kzRtrRer8hA/nmXllpPgtF31472OPliC85QiUBv8nA0=; h=From:To:Cc:Subject:Date:Message-Id:From:Reply-To:Subject:Date:To: Cc:In-Reply-To:References:Message-Id:Sender:Content-Type: Content-Transfer-Encoding:Content-Disposition:Mime-Version; b=hX5fA68B6i35ri8S/El4dFpm/RkrJSpN2Bt2gZDkv0W3YJzt/7gTkEO5oCKP4PiGA dKgAGJlnU1WqmFvRjIbPFW0YhPr5wzCncGFNW54dIzDdqtbG7Ha4hvC7oPY387v6FT QfCU9iJwCUeoGYgFkT+xmZDsMpZqGXlm/ObK0Fr4= X-Mailer: git-send-email 2.17.0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Mailman-Approved-At: Fri, 18 May 2018 13:45:33 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 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.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:146269 Archived-At: With --[bg-]daemon and Type=forking, systemd will only consider the daemon to have fully started up once the original process exits, and will wait until then to start units depending on the Emacs service. To get the same functionality with --fg-daemon, use Type=notify instead of Type=simple and explicitly send a readiness notification to systemd at the point where the forked process would in --bg-daemon mode notify its parent process and cause it to exit. * etc/emacs.service: update Type * src/emacs.c (daemon-initialized): call sd_notify() --- etc/emacs.service | 2 +- src/emacs.c | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/etc/emacs.service b/etc/emacs.service index b29177b120..dbcb6bc301 100644 --- a/etc/emacs.service +++ b/etc/emacs.service @@ -7,7 +7,7 @@ Description=Emacs text editor Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/ [Service] -Type=simple +Type=notify ExecStart=emacs --fg-daemon ExecStop=emacsclient --eval "(kill-emacs)" Environment=SSH_AUTH_SOCK=%t/keyring/ssh diff --git a/src/emacs.c b/src/emacs.c index f25e612664..8718b301a4 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -2477,6 +2477,13 @@ from the parent process and its tty file descriptors. */) error ("This function can only be called after loading the init files"); #ifndef WINDOWSNT + if (daemon_type == 1) + { +#ifdef HAVE_LIBSYSTEMD + sd_notify(0, "READY=1"); +#endif /* HAVE_LIBSYSTEMD */ + } + if (daemon_type == 2) { int nfd; -- 2.17.0