diff options
-rw-r--r-- | perl-install/pkgs.pm | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/perl-install/pkgs.pm b/perl-install/pkgs.pm index 0d93e3601..820f888a1 100644 --- a/perl-install/pkgs.pm +++ b/perl-install/pkgs.pm @@ -1420,6 +1420,7 @@ sub install($$$;$$) { } else { #- child process will run each transaction. $SIG{SEGV} = sub { log::l("segmentation fault on transactions"); c::_exit(0) }; + my @prev_pids = grep { /^\d+$/ } all("/proc"); my $db; eval { close INPUT; @@ -1477,7 +1478,7 @@ sub install($$$;$$) { close OUTPUT; #- now search for child process which may be locking the cdrom, making it unable to be ejected. - if (my @killpid = grep { $_ > $$ } all("/proc")) { + if (my @killpid = difference2([ grep { /^\d+$/ } all("/proc") ], \@prev_pids)) { log::l("ERROR: DrakX should not have to clean the packages shit. Killing ". join(", ", @killpid)); kill 15, @killpid; sleep 2; |