Patchwork dbus: Fix pid file in dbus init script

login
register
mail settings
Submitter Andy Ross
Date Aug. 10, 2012, 7 p.m.
Message ID <1344625241-15300-1-git-send-email-andy.ross@windriver.com>
Download mbox | patch
Permalink /patch/34281/
State Accepted
Commit 23cfbff5611c2ed52eedfaa99b1d6eccd326f035
Headers show

Comments

Andy Ross - Aug. 10, 2012, 7 p.m.
The PIDFILE (/var/run/dbus/pid) referenced by /etc/init.d/dbus-1 did
not match the path (/var/run/messagebus.pid) configured in
/etc/dbus-1/system.conf, so the initscript could start the daemon, but
not stop it.  Also remove needless directory ownership logic
(dbus-daemon drops its pid file as root before calling setuid).

Signed-off-by: Andy Ross <andy.ross@windriver.com>
---
 meta/recipes-core/dbus/dbus-1.4.20/dbus-1.init | 11 +++--------
 meta/recipes-core/dbus/dbus-1.5.12/dbus-1.init | 11 +++--------
 2 files changed, 6 insertions(+), 16 deletions(-)
Saul Wold - Aug. 16, 2012, 6:30 p.m.
On 08/10/2012 12:00 PM, Andy Ross wrote:
> The PIDFILE (/var/run/dbus/pid) referenced by /etc/init.d/dbus-1 did
> not match the path (/var/run/messagebus.pid) configured in
> /etc/dbus-1/system.conf, so the initscript could start the daemon, but
> not stop it.  Also remove needless directory ownership logic
> (dbus-daemon drops its pid file as root before calling setuid).
>
> Signed-off-by: Andy Ross <andy.ross@windriver.com>
> ---
>   meta/recipes-core/dbus/dbus-1.4.20/dbus-1.init | 11 +++--------
>   meta/recipes-core/dbus/dbus-1.5.12/dbus-1.init | 11 +++--------
>   2 files changed, 6 insertions(+), 16 deletions(-)
>
> diff --git a/meta/recipes-core/dbus/dbus-1.4.20/dbus-1.init b/meta/recipes-core/dbus/dbus-1.4.20/dbus-1.init
> index 4abc4cb..17b58ed 100644
> --- a/meta/recipes-core/dbus/dbus-1.4.20/dbus-1.init
> +++ b/meta/recipes-core/dbus/dbus-1.4.20/dbus-1.init
> @@ -18,9 +18,8 @@ set -e
>
>   DAEMON=/usr/bin/dbus-daemon
>   NAME=dbus
> -DAEMONUSER=messagebus
> -PIDDIR=/var/run/dbus
> -PIDFILE=$PIDDIR/pid
> +DAEMONUSER=messagebus           # must match /etc/dbus-1/system.conf
> +PIDFILE=/var/run/messagebus.pid # must match /etc/dbus-1/system.conf
>   UUIDDIR=/var/lib/dbus
>   DESC="system message bus"
>   EVENTDIR=/etc/dbus-1/event.d
> @@ -38,11 +37,7 @@ test "$ENABLED" != "0" || exit 0
>
>   start_it_up()
>   {
> -  if [ ! -d $PIDDIR ]; then
> -    mkdir -p $PIDDIR
> -    chown $DAEMONUSER $PIDDIR
> -    chgrp $DAEMONUSER $PIDDIR
> -  fi
> +  mkdir -p "`dirname $PIDFILE`"
>     if [ -e $PIDFILE ]; then
>       PIDDIR=/proc/$(cat $PIDFILE)
>       if [ -d ${PIDDIR} -a  "$(readlink -f ${PIDDIR}/exe)" = "${DAEMON}" ]; then
> diff --git a/meta/recipes-core/dbus/dbus-1.5.12/dbus-1.init b/meta/recipes-core/dbus/dbus-1.5.12/dbus-1.init
> index 4abc4cb..17b58ed 100644
> --- a/meta/recipes-core/dbus/dbus-1.5.12/dbus-1.init
> +++ b/meta/recipes-core/dbus/dbus-1.5.12/dbus-1.init
> @@ -18,9 +18,8 @@ set -e
>
>   DAEMON=/usr/bin/dbus-daemon
>   NAME=dbus
> -DAEMONUSER=messagebus
> -PIDDIR=/var/run/dbus
> -PIDFILE=$PIDDIR/pid
> +DAEMONUSER=messagebus           # must match /etc/dbus-1/system.conf
> +PIDFILE=/var/run/messagebus.pid # must match /etc/dbus-1/system.conf
>   UUIDDIR=/var/lib/dbus
>   DESC="system message bus"
>   EVENTDIR=/etc/dbus-1/event.d
> @@ -38,11 +37,7 @@ test "$ENABLED" != "0" || exit 0
>
>   start_it_up()
>   {
> -  if [ ! -d $PIDDIR ]; then
> -    mkdir -p $PIDDIR
> -    chown $DAEMONUSER $PIDDIR
> -    chgrp $DAEMONUSER $PIDDIR
> -  fi
> +  mkdir -p "`dirname $PIDFILE`"
>     if [ -e $PIDFILE ]; thenOn 08/10/2012 12:00 PM, Andy Ross wrote:> The PIDFILE (/var/run/dbus/pid) referenced by /etc/init.d/dbus-1 did
> not match the path (/var/run/messagebus.pid) configured in
> /etc/dbus-1/system.conf, so the initscript could start the daemon, but
> not stop it.  Also remove needless directory ownership logic
> (dbus-daemon drops its pid file as root before calling setuid).
>
> Signed-off-by: Andy Ross <andy.ross@windriver.com>
> ---
>   meta/recipes-core/dbus/dbus-1.4.20/dbus-1.init | 11 +++--------
>   meta/recipes-core/dbus/dbus-1.5.12/dbus-1.init | 11 +++--------
>   2 files changed, 6 insertions(+), 16 deletions(-)
>
> diff --git a/meta/recipes-core/dbus/dbus-1.4.20/dbus-1.init b/meta/recipes-core/dbus/dbus-1.4.20/dbus-1.init
> index 4abc4cb..17b58ed 100644
> --- a/meta/recipes-core/dbus/dbus-1.4.20/dbus-1.init
> +++ b/meta/recipes-core/dbus/dbus-1.4.20/dbus-1.init
> @@ -18,9 +18,8 @@ set -e
>
>   DAEMON=/usr/bin/dbus-daemon
>   NAME=dbus
> -DAEMONUSER=messagebus
> -PIDDIR=/var/run/dbus
> -PIDFILE=$PIDDIR/pid
> +DAEMONUSER=messagebus           # must match /etc/dbus-1/system.conf
> +PIDFILE=/var/run/messagebus.pid # must match /etc/dbus-1/system.conf
>   UUIDDIR=/var/lib/dbus
>   DESC="system message bus"
>   EVENTDIR=/etc/dbus-1/event.d
> @@ -38,11 +37,7 @@ test "$ENABLED" != "0" || exit 0
>
>   start_it_up()
>   {
> -  if [ ! -d $PIDDIR ]; then
> -    mkdir -p $PIDDIR
> -    chown $DAEMONUSER $PIDDIR
> -    chgrp $DAEMONUSER $PIDDIR
> -  fi
> +  mkdir -p "`dirname $PIDFILE`"
>     if [ -e $PIDFILE ]; then
>       PIDDIR=/proc/$(cat $PIDFILE)
>       if [ -d ${PIDDIR} -a  "$(readlink -f ${PIDDIR}/exe)" = "${DAEMON}" ]; then
> diff --git a/meta/recipes-core/dbus/dbus-1.5.12/dbus-1.init b/meta/recipes-core/dbus/dbus-1.5.12/dbus-1.init
> index 4abc4cb..17b58ed 100644
> --- a/meta/recipes-core/dbus/dbus-1.5.12/dbus-1.init
> +++ b/meta/recipes-core/dbus/dbus-1.5.12/dbus-1.init
> @@ -18,9 +18,8 @@ set -e
>
>   DAEMON=/usr/bin/dbus-daemon
>   NAME=dbus
> -DAEMONUSER=messagebus
> -PIDDIR=/var/run/dbus
> -PIDFILE=$PIDDIR/pid
> +DAEMONUSER=messagebus           # must match /etc/dbus-1/system.conf
> +PIDFILE=/var/run/messagebus.pid # must match /etc/dbus-1/system.conf
>   UUIDDIR=/var/lib/dbus
>   DESC="system message bus"
>   EVENTDIR=/etc/dbus-1/event.d
> @@ -38,11 +37,7 @@ test "$ENABLED" != "0" || exit 0
>
>   start_it_up()
>   {
> -  if [ ! -d $PIDDIR ]; then
> -    mkdir -p $PIDDIR
> -    chown $DAEMONUSER $PIDDIR
> -    chgrp $DAEMONUSER $PIDDIR
> -  fi
> +  mkdir -p "`dirname $PIDFILE`"
>     if [ -e $PIDFILE ]; then
>       PIDDIR=/proc/$(cat $PIDFILE)
>       if [ -d ${PIDDIR} -a  "$(readlink -f ${PIDDIR}/exe)" = "${DAEMON}" ]; then
>
>       PIDDIR=/proc/$(cat $PIDFILE)
>       if [ -d ${PIDDIR} -a  "$(readlink -f ${PIDDIR}/exe)" = "${DAEMON}" ]; then
>

Merged into OE-Core

Thanks
	Sau!

Patch

diff --git a/meta/recipes-core/dbus/dbus-1.4.20/dbus-1.init b/meta/recipes-core/dbus/dbus-1.4.20/dbus-1.init
index 4abc4cb..17b58ed 100644
--- a/meta/recipes-core/dbus/dbus-1.4.20/dbus-1.init
+++ b/meta/recipes-core/dbus/dbus-1.4.20/dbus-1.init
@@ -18,9 +18,8 @@  set -e
 
 DAEMON=/usr/bin/dbus-daemon
 NAME=dbus
-DAEMONUSER=messagebus
-PIDDIR=/var/run/dbus
-PIDFILE=$PIDDIR/pid
+DAEMONUSER=messagebus           # must match /etc/dbus-1/system.conf
+PIDFILE=/var/run/messagebus.pid # must match /etc/dbus-1/system.conf
 UUIDDIR=/var/lib/dbus
 DESC="system message bus"
 EVENTDIR=/etc/dbus-1/event.d
@@ -38,11 +37,7 @@  test "$ENABLED" != "0" || exit 0
 
 start_it_up()
 {
-  if [ ! -d $PIDDIR ]; then
-    mkdir -p $PIDDIR
-    chown $DAEMONUSER $PIDDIR
-    chgrp $DAEMONUSER $PIDDIR
-  fi
+  mkdir -p "`dirname $PIDFILE`"
   if [ -e $PIDFILE ]; then
     PIDDIR=/proc/$(cat $PIDFILE)
     if [ -d ${PIDDIR} -a  "$(readlink -f ${PIDDIR}/exe)" = "${DAEMON}" ]; then 
diff --git a/meta/recipes-core/dbus/dbus-1.5.12/dbus-1.init b/meta/recipes-core/dbus/dbus-1.5.12/dbus-1.init
index 4abc4cb..17b58ed 100644
--- a/meta/recipes-core/dbus/dbus-1.5.12/dbus-1.init
+++ b/meta/recipes-core/dbus/dbus-1.5.12/dbus-1.init
@@ -18,9 +18,8 @@  set -e
 
 DAEMON=/usr/bin/dbus-daemon
 NAME=dbus
-DAEMONUSER=messagebus
-PIDDIR=/var/run/dbus
-PIDFILE=$PIDDIR/pid
+DAEMONUSER=messagebus           # must match /etc/dbus-1/system.conf
+PIDFILE=/var/run/messagebus.pid # must match /etc/dbus-1/system.conf
 UUIDDIR=/var/lib/dbus
 DESC="system message bus"
 EVENTDIR=/etc/dbus-1/event.d
@@ -38,11 +37,7 @@  test "$ENABLED" != "0" || exit 0
 
 start_it_up()
 {
-  if [ ! -d $PIDDIR ]; then
-    mkdir -p $PIDDIR
-    chown $DAEMONUSER $PIDDIR
-    chgrp $DAEMONUSER $PIDDIR
-  fi
+  mkdir -p "`dirname $PIDFILE`"
   if [ -e $PIDFILE ]; then
     PIDDIR=/proc/$(cat $PIDFILE)
     if [ -d ${PIDDIR} -a  "$(readlink -f ${PIDDIR}/exe)" = "${DAEMON}" ]; then