summaryrefslogtreecommitdiff
path: root/runit
diff options
context:
space:
mode:
Diffstat (limited to 'runit')
-rw-r--r--runit/runit_lib.h2
-rw-r--r--runit/runsv.c37
2 files changed, 20 insertions, 19 deletions
diff --git a/runit/runit_lib.h b/runit/runit_lib.h
index fd94db9..28769e5 100644
--- a/runit/runit_lib.h
+++ b/runit/runit_lib.h
@@ -90,7 +90,7 @@ typedef struct svstatus_t {
uint32_t time_nsec_be32 PACKED;
uint32_t pid_le32 PACKED;
uint8_t paused;
- uint8_t want;
+ uint8_t want; /* 'u' or 'd' */
uint8_t got_term;
uint8_t run_or_finish;
} svstatus_t;
diff --git a/runit/runsv.c b/runit/runsv.c
index 5cb5d2f..e93e25a 100644
--- a/runit/runsv.c
+++ b/runit/runsv.c
@@ -78,7 +78,7 @@ struct svdir {
int pid;
smallint state;
smallint ctrl;
- smallint want;
+ smallint sd_want;
smallint islog;
struct timespec start;
int fdlock;
@@ -201,7 +201,7 @@ static void update_status(struct svdir *s)
if (s->ctrl & C_PAUSE) p = add_str(p, ", paused");
if (s->ctrl & C_TERM) p = add_str(p, ", got TERM");
if (s->state != S_DOWN)
- switch (s->want) {
+ switch (s->sd_want) {
case W_DOWN:
p = add_str(p, ", want down");
break;
@@ -224,7 +224,7 @@ static void update_status(struct svdir *s)
status.pid_le32 = SWAP_LE32(s->pid);
if (s->ctrl & C_PAUSE)
status.paused = 1;
- if (s->want == W_UP)
+ if (s->sd_want == W_UP)
status.want = 'u';
else
status.want = 'd';
@@ -291,12 +291,12 @@ static void stopservice(struct svdir *s)
s->ctrl |= C_TERM;
update_status(s);
}
- if (s->want == W_DOWN) {
+ if (s->sd_want == W_DOWN) {
kill(s->pid, SIGCONT);
custom(s, 'd');
return;
}
- if (s->want == W_EXIT) {
+ if (s->sd_want == W_EXIT) {
kill(s->pid, SIGCONT);
custom(s, 'x');
}
@@ -360,13 +360,13 @@ static int ctrl(struct svdir *s, char c)
switch (c) {
case 'd': /* down */
- s->want = W_DOWN;
+ s->sd_want = W_DOWN;
update_status(s);
if (s->pid && s->state != S_FINISH)
stopservice(s);
break;
case 'u': /* up */
- s->want = W_UP;
+ s->sd_want = W_UP;
update_status(s);
if (s->pid == 0)
startservice(s);
@@ -374,7 +374,7 @@ static int ctrl(struct svdir *s, char c)
case 'x': /* exit */
if (s->islog)
break;
- s->want = W_EXIT;
+ s->sd_want = W_EXIT;
update_status(s);
/* FALLTHROUGH */
case 't': /* sig term */
@@ -399,7 +399,7 @@ static int ctrl(struct svdir *s, char c)
update_status(s);
break;
case 'o': /* once */
- s->want = W_DOWN;
+ s->sd_want = W_DOWN;
update_status(s);
if (!s->pid)
startservice(s);
@@ -459,11 +459,12 @@ int runsv_main(int argc UNUSED_PARAM, char **argv)
/* bss: svd[0].pid = 0; */
if (S_DOWN) svd[0].state = S_DOWN; /* otherwise already 0 (bss) */
if (C_NOOP) svd[0].ctrl = C_NOOP;
- if (W_UP) svd[0].want = W_UP;
+ if (W_UP) svd[0].sd_want = W_UP;
/* bss: svd[0].islog = 0; */
/* bss: svd[1].pid = 0; */
gettimeofday_ns(&svd[0].start);
- if (stat("down", &s) != -1) svd[0].want = W_DOWN;
+ if (stat("down", &s) != -1)
+ svd[0].sd_want = W_DOWN;
if (stat("log", &s) == -1) {
if (errno != ENOENT)
@@ -476,11 +477,11 @@ int runsv_main(int argc UNUSED_PARAM, char **argv)
haslog = 1;
svd[1].state = S_DOWN;
svd[1].ctrl = C_NOOP;
- svd[1].want = W_UP;
+ svd[1].sd_want = W_UP;
svd[1].islog = 1;
gettimeofday_ns(&svd[1].start);
if (stat("log/down", &s) != -1)
- svd[1].want = W_DOWN;
+ svd[1].sd_want = W_DOWN;
xpiped_pair(logpipe);
close_on_exec_on(logpipe.rd);
close_on_exec_on(logpipe.wr);
@@ -558,10 +559,10 @@ int runsv_main(int argc UNUSED_PARAM, char **argv)
char ch;
if (haslog)
- if (!svd[1].pid && svd[1].want == W_UP)
+ if (!svd[1].pid && svd[1].sd_want == W_UP)
startservice(&svd[1]);
if (!svd[0].pid)
- if (svd[0].want == W_UP || svd[0].state == S_FINISH)
+ if (svd[0].sd_want == W_UP || svd[0].state == S_FINISH)
startservice(&svd[0]);
x[0].fd = selfpipe.rd;
@@ -634,11 +635,11 @@ int runsv_main(int argc UNUSED_PARAM, char **argv)
sigterm = 0;
}
- if (svd[0].want == W_EXIT && svd[0].state == S_DOWN) {
+ if (svd[0].sd_want == W_EXIT && svd[0].state == S_DOWN) {
if (svd[1].pid == 0)
_exit(EXIT_SUCCESS);
- if (svd[1].want != W_EXIT) {
- svd[1].want = W_EXIT;
+ if (svd[1].sd_want != W_EXIT) {
+ svd[1].sd_want = W_EXIT;
/* stopservice(&svd[1]); */
update_status(&svd[1]);
close(logpipe.wr);