VKERNEL Pidfile patch
Chris Turner
c.turner at 199technologies.org
Sun Jun 17 07:16:07 PDT 2007
Joerg Sonnenberger wrote:
> On Sun, Jun 17, 2007 at 12:22:54AM -0400, Chris Turner wrote:
>> - 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.
>
> How does this work if -p is specified more than once?
> You don't have to strdup optarg if you don't modify argv.
>
> Joerg
Updated version:
- only handles 1 pidfile, which is the last -p argument specified.
- pidfile processing moved to function for clarity
- non-strduping of optarg
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
109a110
> static void writepid(char *path);
125a127
> char *pidfile = NULL;
132c134
<
---
>
141c143
< 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) {
202a205,207
> case 'p':
> pidfile = optarg;
> break;
208a214
> writepid(pidfile);
1041a1048,1065
> writepid(char *path)
> {
> pid_t self = 0;
> FILE *pidfile = NULL;
>
> self = getpid();
> pidfile = fopen(path, "w");
> if (pidfile) {
> fprintf(pidfile, "%ld\n", (long)self);
> fclose(pidfile);
> }
> else {
> perror("Warning: couldn't open pidfile");
> }
> }
>
> static
> void
More information about the Submit
mailing list