Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 1/1] systemd.bbclass: only restart the service when it is running at systemd_postinst
@ 2013-11-04 10:38 Li Zhijian
  2013-11-05 10:11 ` Li Zhijian
  0 siblings, 1 reply; 2+ messages in thread
From: Li Zhijian @ 2013-11-04 10:38 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

From: Li Zhijian <lizhijian@cn.fujitsu.com>

If systemd_postinst is installed as a delayed package scriptlet (installed to /etc/rpm-postints/${PN})
which would be executed at the first time of OS startup. And then this script would block when it is
trying to call systemctl to restart service.

It seems that it is not a good timing to restart service at run-postinsts.
I test serval services which has supported systemd(uuidd/avahi-daemon), all of them
will block the startup.

Steps to reproduce:
1) Installed systemd_postinst as a delayed package scriptlet
   i.e. Append Following lines to meta/recipes-core/busybox/busybox.inc
pkg_postinst_${PN}-syslog () {
       if [ "x$D" != "x" ] ; then
               exit 1
       fi
}
2) build a rootfs
# bitbake core-image-minimal
3) startup this rootfs

OS would block at /etc/rpm-postinsts/busybox-syslog, like follows
[ ***] A start job is running ro Run pending postinsts

This patch can fix the block problem, and make the service is consistent with the original status

Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
---
 meta/classes/systemd.bbclass |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/meta/classes/systemd.bbclass b/meta/classes/systemd.bbclass
index 8084251..9fef667 100644
--- a/meta/classes/systemd.bbclass
+++ b/meta/classes/systemd.bbclass
@@ -30,7 +30,8 @@ fi
 if type systemctl >/dev/null 2>/dev/null; then
 	systemctl $OPTS ${SYSTEMD_AUTO_ENABLE} ${SYSTEMD_SERVICE}
 -	if [ -z "$D" -a "${SYSTEMD_AUTO_ENABLE}" = "enable" ]; then
+	if [ -z "$D" ] && [ systemctl status ${SYSTEMD_SERVICE} &>/dev/null ]; then
+		# if service is running, restart it
 		systemctl restart ${SYSTEMD_SERVICE}
 	fi
 fi
-- 
1.7.1









^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2013-11-05 10:11 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-04 10:38 [PATCH 1/1] systemd.bbclass: only restart the service when it is running at systemd_postinst Li Zhijian
2013-11-05 10:11 ` Li Zhijian

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox