mdmon: add --foreground option
While not strictly necessary for systemd, it is cleaner to avoid forking when running from a management daemon. So add a --foreground option to mdmon. Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
15c10423aa
commit
030419821f
10
mdmon.8
10
mdmon.8
|
@ -5,7 +5,7 @@ mdmon \- monitor MD external metadata arrays
|
||||||
|
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
||||||
.BI mdmon " [--all] [--takeover] CONTAINER"
|
.BI mdmon " [--all] [--takeover] [--foreground] CONTAINER"
|
||||||
|
|
||||||
.SH OVERVIEW
|
.SH OVERVIEW
|
||||||
The 2.6.27 kernel brings the ability to support external metadata arrays.
|
The 2.6.27 kernel brings the ability to support external metadata arrays.
|
||||||
|
@ -131,6 +131,14 @@ The
|
||||||
device to monitor. It can be a full path like /dev/md/container, or a
|
device to monitor. It can be a full path like /dev/md/container, or a
|
||||||
simple md device name like md127.
|
simple md device name like md127.
|
||||||
.TP
|
.TP
|
||||||
|
.B \-\-foreground
|
||||||
|
Normally,
|
||||||
|
.I mdmon
|
||||||
|
will fork and continue in the background. Adding this option will
|
||||||
|
skip that step and run
|
||||||
|
.I mdmon
|
||||||
|
in the foreground.
|
||||||
|
.TP
|
||||||
.B \-\-takeover
|
.B \-\-takeover
|
||||||
This instructs
|
This instructs
|
||||||
.I mdmon
|
.I mdmon
|
||||||
|
|
9
mdmon.c
9
mdmon.c
|
@ -288,11 +288,13 @@ int main(int argc, char *argv[])
|
||||||
int opt;
|
int opt;
|
||||||
int all = 0;
|
int all = 0;
|
||||||
int takeover = 0;
|
int takeover = 0;
|
||||||
|
int dofork = 1;
|
||||||
static struct option options[] = {
|
static struct option options[] = {
|
||||||
{"all", 0, NULL, 'a'},
|
{"all", 0, NULL, 'a'},
|
||||||
{"takeover", 0, NULL, 't'},
|
{"takeover", 0, NULL, 't'},
|
||||||
{"help", 0, NULL, 'h'},
|
{"help", 0, NULL, 'h'},
|
||||||
{"offroot", 0, NULL, OffRootOpt},
|
{"offroot", 0, NULL, OffRootOpt},
|
||||||
|
{"foreground", 0, NULL, 'F'},
|
||||||
{NULL, 0, NULL, 0}
|
{NULL, 0, NULL, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -301,7 +303,7 @@ int main(int argc, char *argv[])
|
||||||
*/
|
*/
|
||||||
argv[0][0] = '@';
|
argv[0][0] = '@';
|
||||||
|
|
||||||
while ((opt = getopt_long(argc, argv, "tha", options, NULL)) != -1) {
|
while ((opt = getopt_long(argc, argv, "thaF", options, NULL)) != -1) {
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
case 'a':
|
case 'a':
|
||||||
container_name = argv[optind-1];
|
container_name = argv[optind-1];
|
||||||
|
@ -310,6 +312,9 @@ int main(int argc, char *argv[])
|
||||||
case 't':
|
case 't':
|
||||||
takeover = 1;
|
takeover = 1;
|
||||||
break;
|
break;
|
||||||
|
case 'F':
|
||||||
|
dofork = 0;
|
||||||
|
break;
|
||||||
case OffRootOpt:
|
case OffRootOpt:
|
||||||
/* silently ignore old option */
|
/* silently ignore old option */
|
||||||
break;
|
break;
|
||||||
|
@ -381,7 +386,7 @@ int main(int argc, char *argv[])
|
||||||
container_name);
|
container_name);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
return mdmon(devname, devnum, do_fork(), takeover);
|
return mdmon(devname, devnum, dofork && do_fork(), takeover);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mdmon(char *devname, int devnum, int must_fork, int takeover)
|
static int mdmon(char *devname, int devnum, int must_fork, int takeover)
|
||||||
|
|
|
@ -11,7 +11,7 @@ DefaultDependencies=no
|
||||||
Before=initrd-switch-root.target
|
Before=initrd-switch-root.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/sbin/mdmon %I
|
ExecStart=/sbin/mdmon --foreground %I
|
||||||
StandardInput=null
|
StandardInput=null
|
||||||
StandardOutput=null
|
StandardOutput=null
|
||||||
StandardError=null
|
StandardError=null
|
||||||
|
|
Loading…
Reference in New Issue