Whoops, this fell out of my inbox. Whilst the is-active check now means that the service is restarted on upgrades, if the package is being installed it's now not started if AUTO_ENABLE is set to true.
I think the logic should be "$D unset and (auto enable or is-active)" Ross On 19 November 2013 02:26, Li Zhijian <[email protected]> wrote: > ping... > > -- > Best regards. > Li Zhijian > > |-----Original Message----- > |From: [email protected] > |[mailto:[email protected]] On Behalf Of > |Li Zhijian > |Sent: Tuesday, November 05, 2013 6:14 PM > |To: Patches and discussions about the oe-core layer > |Subject: [OE-core] [PATCH v2] systemd.bbclass: only restart the service > |when it is active at systemd_postinst > | > |From: Li Zhijian <[email protected]> > | > |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 <[email protected]> > |--- > | 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 3700b2e..1feac06 100644 > |--- a/meta/classes/systemd.bbclass > |+++ b/meta/classes/systemd.bbclass > |@@ -32,7 +32,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 is-active ${SYSTEMD_SERVICE} > |&>/dev/null; then > |+ # if service is active, restart it > | systemctl restart ${SYSTEMD_SERVICE} > | fi > | fi > |-- > |1.7.1 > | > | > | > | > |_______________________________________________ > |Openembedded-core mailing list > |[email protected] > |http://lists.openembedded.org/mailman/listinfo/openembedded-core > > > > _______________________________________________ > Openembedded-core mailing list > [email protected] > http://lists.openembedded.org/mailman/listinfo/openembedded-core _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
