1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-25 04:43:33 +00:00

- Add patch to fix zombie problem

- Raise portrevision

PR:		ports/67927
Submitted by:	Konstantin Reznichenko <kot@premierbank.dp.ua> (maintainer)
This commit is contained in:
Pav Lucistnik 2004-06-16 18:21:49 +00:00
parent 6e0f323d90
commit b1c26af872
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=111616
2 changed files with 11 additions and 3 deletions

View File

@ -7,6 +7,7 @@
PORTNAME= fileschanged PORTNAME= fileschanged
PORTVERSION= 0.6.0 PORTVERSION= 0.6.0
PORTREVISION= 1
CATEGORIES= sysutils CATEGORIES= sysutils
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= ${PORTNAME} MASTER_SITE_SUBDIR= ${PORTNAME}

View File

@ -1,20 +1,23 @@
--- src/handlers.c.orig Mon Feb 23 01:42:46 2004 --- src/handlers.c.orig Mon Feb 23 01:42:46 2004
+++ src/handlers.c Sun May 23 17:50:35 2004 +++ src/handlers.c Wed Jun 16 20:13:06 2004
@@ -7,6 +7,10 @@ @@ -7,6 +7,11 @@
#include "node.h" #include "node.h"
#include "opts.h" #include "opts.h"
#include "wl.h" #include "wl.h"
+#if defined(__FreeBSD__) +#if defined(__FreeBSD__)
+#include <signal.h>
+#include "libgen.h" +#include "libgen.h"
+#endif +#endif
+ +
extern struct arguments_t arguments; extern struct arguments_t arguments;
struct handler_t handlers[FC_HANDLER_MAX]= struct handler_t handlers[FC_HANDLER_MAX]=
{ {
@@ -180,12 +184,18 @@ @@ -180,12 +185,24 @@
} }
void show_event(enum handler_enum_t id, char *filename) void show_event(enum handler_enum_t id, char *filename)
{ {
+ struct sigaction sa;
+
+ if (arguments.fileschanged.exec_command == NULL) { + if (arguments.fileschanged.exec_command == NULL) {
if (arguments.fileschanged.showaction) if (arguments.fileschanged.showaction)
{ {
@ -23,6 +26,10 @@
fprintf(stdout, "%s\n",filename); fprintf(stdout, "%s\n",filename);
fflush(stdout); fflush(stdout);
+ } else { + } else {
+ sa.sa_handler = SIG_IGN;
+ sa.sa_flags = SA_NOCLDWAIT;
+ sigemptyset(&sa.sa_mask);
+ sigaction(SIGCHLD, &sa, NULL);
+ if (!fork()) { + if (!fork()) {
+ execlp(arguments.fileschanged.exec_command, arguments.fileschanged.exec_command, handlers[id].name, filename, NULL); + execlp(arguments.fileschanged.exec_command, arguments.fileschanged.exec_command, handlers[id].name, filename, NULL);
+ } + }