summaryrefslogtreecommitdiffstats
path: root/vespalog
diff options
context:
space:
mode:
authorArne Juul <arnej@yahooinc.com>2022-10-26 12:55:06 +0000
committerArne Juul <arnej@yahooinc.com>2022-10-26 12:55:21 +0000
commit9d3b2cfa1212043238c5b8fc9e8fa76f6078c6ae (patch)
treea714ae657710c72ab5a5b2e38e06fc989599b9ef /vespalog
parent66705589eabecefd5e4c0442b050afe6b65c4527 (diff)
add -W option
Diffstat (limited to 'vespalog')
-rw-r--r--vespalog/src/logger/runserver.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/vespalog/src/logger/runserver.cpp b/vespalog/src/logger/runserver.cpp
index f9dde87ca14..7cec2be6f3f 100644
--- a/vespalog/src/logger/runserver.cpp
+++ b/vespalog/src/logger/runserver.cpp
@@ -342,6 +342,7 @@ int usage(char *prog, int es)
int main(int argc, char *argv[])
{
bool doStop = false;
+ bool checkWouldRun = false;
int restart = 0;
const char *service = "runserver";
const char *pidfile = "vespa-runserver.pid"; // XXX bad default?
@@ -350,7 +351,7 @@ int main(int argc, char *argv[])
signal(SIGQUIT, SIG_IGN);
int ch;
- while ((ch = getopt(argc, argv, "k:s:r:p:Sh")) != -1) {
+ while ((ch = getopt(argc, argv, "k:s:r:p:ShW")) != -1) {
switch (ch) {
case 's':
service = optarg;
@@ -367,6 +368,9 @@ int main(int argc, char *argv[])
case 'k':
killcmd = optarg;
break;
+ case 'W':
+ checkWouldRun = true;
+ break;
default:
return usage(argv[0], ch != 'h');
}
@@ -383,6 +387,14 @@ int main(int argc, char *argv[])
}
PidFile mypf(pidfile);
+ if (checkWouldRun) {
+ if (mypf.anotherRunning()) {
+ fprintf(stderr, "%s already running with pid %d\n", service, mypf.readPid());
+ return 1;
+ } else {
+ return 0;
+ }
+ }
if (doStop) {
if (mypf.anotherRunning()) {
int pid = mypf.readPid();