3
5
Fork 0
mirror of git://git.savannah.gnu.org/guix.git synced 2023-12-14 03:33:07 +01:00
guix/gnu/packages/patches/ngircd-handle-zombies.patch
Taylan Ulrich Bayırlı/Kammer ea119a288f gnu: Add ngircd.
* gnu/packages/messaging.scm (ngircd): New variable.
* gnu/packages/patches/ngircd-no-dns-in-tests.patch: New file.
* gnu/packages/patches/ngircd-handle-zombies.patch: New file.
* gnu-system.am (dist_patch_DATA): Add them.
2015-02-05 17:08:39 +01:00

37 lines
848 B
Diff

The Guile process taking the role of PID 1 during Guix builds does not reap
zombie processes, which makes them continue responding to "kill -0".
--- a/src/testsuite/stop-server.sh 2015-02-05 11:24:00.535908842 +0100
+++ b/src/testsuite/stop-server.sh 2015-02-05 11:25:00.264351349 +0100
@@ -1,6 +1,21 @@
#!/bin/sh
# ngIRCd Test Suite
+process_is_alive(){
+ ! process_is_dead "$1" && ! process_is_undead "$1"
+}
+
+process_is_dead(){
+ ! kill -0 "$1"
+}
+
+process_is_undead(){
+ case $(ps -p "$1" -o state=) in
+ (Z*) true ;;
+ (*) false ;;
+ esac
+}
+
[ -z "$srcdir" ] && srcdir=`dirname $0`
# read in functions
@@ -24,7 +40,7 @@
# waiting ...
for i in 1 2 3 4 5; do
- kill -0 $pid > /dev/null 2>&1; r=$?
+ process_is_alive $pid > /dev/null 2>&1; r=$?
if [ $r -ne 0 ]; then
echo " ok".
exit 0