Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Li Zhijian <lizhijian@cn.fujitsu.com>
To: Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 1/1] systemd.bbclass: only restart the service when it is running at systemd_postinst
Date: Tue, 05 Nov 2013 18:11:44 +0800	[thread overview]
Message-ID: <5278C460.3090204@cn.fujitsu.com> (raw)
In-Reply-To: <5277790C.1060208@cn.fujitsu.com>

This patch is incorrect, please ignore it

i would send v2 soon.


at 2013/11/4 18:38, Li Zhijian wrote:
> 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
Should be:

if [ -z "$D" ] && systemctl status ${SYSTEMD_SERVICE} &>/dev/null; then

-- 
Best regards.
Li Zhijian

> +		# if service is running, restart it
>   		systemctl restart ${SYSTEMD_SERVICE}
>   	fi
>   fi


-- 
Best regards.
Li Zhijian (8555)




      reply	other threads:[~2013-11-05 10:11 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5278C460.3090204@cn.fujitsu.com \
    --to=lizhijian@cn.fujitsu.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox