Meh - I need to test this better; not working reliably everywhere.

On 20/06/13 18:44, James Page wrote:
On Ubuntu Saucy based desktops, upstart runs with user sessions
enabled which means that the init process under which a daemon
might run is not always pid = 1.

Check for a process with cmd name of 'init' instead.

Signed-off-by: James Page <james.p...@ubuntu.com>
---
  tests/daemon-py.at | 10 ++++++----
  tests/daemon.at    | 10 ++++++----
  2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/tests/daemon-py.at b/tests/daemon-py.at
index 39ab3cc..ff8592c 100644
--- a/tests/daemon-py.at
+++ b/tests/daemon-py.at
@@ -141,8 +141,9 @@ AT_CHECK([test -s daemon])
  CHECK([kill -0 `cat daemon`])
  CHECK([ps -o ppid= -p `cat daemon` > monitor])
  CHECK([kill -0 `cat monitor`])
-CHECK([ps -o ppid= -p `cat monitor` > init])
-CHECK([test `cat init` = 1])
+CHECK([ps -o ppid= -p `cat monitor` > init.pid])
+CHECK([ps -o cmd= -p `cat init.pid` | awk '{ print $1 }' > init])
+CHECK([test `cat init` = init])
  # Kill the daemon process, making it look like a segfault,
  # and wait for a new daemon process to get spawned.
  CHECK([cp daemon olddaemon])
@@ -158,8 +159,9 @@ CHECK([diff olddaemon newdaemon], [1], [ignore])
  CHECK([ps -o ppid= -p `cat daemon` > newmonitor])
  CHECK([diff monitor newmonitor])
  CHECK([kill -0 `cat newmonitor`])
-CHECK([ps -o ppid= -p `cat newmonitor` > init])
-CHECK([test `cat init` = 1])
+CHECK([ps -o ppid= -p `cat monitor` > init.pid])
+CHECK([ps -o cmd= -p `cat init.pid` | awk '{ print $1 }' > init])
+CHECK([test `cat init` = init])
  # Kill the daemon process with SIGTERM, and wait for the daemon
  # and the monitor processes to go away and the pidfile to get deleted.
  CHECK([kill `cat daemon`], [0], [], [ignore])
diff --git a/tests/daemon.at b/tests/daemon.at
index a80cd3e..5ff4476 100644
--- a/tests/daemon.at
+++ b/tests/daemon.at
@@ -103,8 +103,9 @@ AT_CHECK([test -s daemon])
  CHECK([kill -0 `cat daemon`])
  CHECK([ps -o ppid= -p `cat daemon` > monitor])
  CHECK([kill -0 `cat monitor`])
-CHECK([ps -o ppid= -p `cat monitor` > init])
-CHECK([test `cat init` = 1])
+CHECK([ps -o ppid= -p `cat monitor` > init.pid])
+CHECK([ps -o cmd= -p `cat init.pid` | awk '{ print $1 }' > init])
+CHECK([test `cat init` = init])
  # Kill the daemon process, making it look like a segfault,
  # and wait for a new daemon process to get spawned.
  CHECK([cp daemon olddaemon])
@@ -120,8 +121,9 @@ CHECK([diff olddaemon newdaemon], [1], [ignore])
  CHECK([ps -o ppid= -p `cat daemon` > newmonitor])
  CHECK([diff monitor newmonitor])
  CHECK([kill -0 `cat newmonitor`])
-CHECK([ps -o ppid= -p `cat newmonitor` > init])
-CHECK([test `cat init` = 1])
+CHECK([ps -o ppid= -p `cat monitor` > init.pid])
+CHECK([ps -o cmd= -p `cat init.pid` | awk '{ print $1 }' > init])
+CHECK([test `cat init` = init])
  # Kill the daemon process with SIGTERM, and wait for the daemon
  # and the monitor processes to go away and the pidfile to get deleted.
  CHECK([kill `cat daemon`], [0], [], [ignore])



--
James Page
Ubuntu Core Developer
Debian Maintainer
james.p...@ubuntu.com
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to