VKERNEL Pidfile patch
Chris Turner
c.turner at 199technologies.org
Sat Jun 16 21:24:20 PDT 2007
Okay.. So heres a quick patch to have the vkernel write out a pidfile.
(WFM-TM)
3 possible 'messies':
- doing this 'inline' within the getopt processing. Felt this
was simpleenough a task that that wasn't a big deal, but I
can see how some might not like it that way.
- If the pidfile isn't writable, it's considered a warning and not
an error. Was using inetd as my inspiration, and kept
things consistent - but perhaps this shouldn't be the case?
- the vkernel.7 patch was manually edited to remove the signal edits
from earlier.. hopefully it still applies cleanly to HEAD. Only a
sentance or two there probably not too much to fix if so.
Comments / Concerns / etc. welcome - didn't edit Nuno's rc script as he
said he'd take care of that and I'm using another mechanism to handle
VKERNEL systems at the moment.
Thanks,
- Chris
Index: share/man/man7/vkernel.7
===================================================================
RCS file: /var/local/apps/dcvs/src/share/man/man7/vkernel.7,v
retrieving revision 1.18
diff -r1.18 vkernel.7
53a54
> .Op Fl p Ar file
151a153,155
> .It Fl p Ar file
> Specify a file in which to store the process ID.
> A warning is issued if this file cannot be opened for writing.
Index: sys/platform/vkernel/platform/init.c
===================================================================
RCS file: /var/local/apps/dcvs/src/sys/platform/vkernel/platform/init.c,v
retrieving revision 1.39
diff -r1.39 init.c
120a121,122
> FILE *pf = NULL;
> pid_t self;
125a128
> char *pidfile;
131a135
>
141c145
< while ((c = getopt(ac, av, "c:svm:r:e:i:I:U")) != -1) {
---
> while ((c = getopt(ac, av, "c:svm:r:e:i:p:I:U")) != -1) {
202a207,218
> case 'p':
> self = getpid();
> pidfile = strdup(optarg);
> pf = fopen(pidfile, "w");
> if (pf) {
> fprintf(pf, "%ld\n", (long)self);
> fclose(pf);
> }
> else {
> perror("Warning: couldn't open pidfile");
> }
> break;
More information about the Submit
mailing list