From b20fafd9fa6faeb460e67df5fd3b19ae81982261 Mon Sep 17 00:00:00 2001 From: Joachim Nilsson Date: Fri, 14 Jul 2017 11:03:59 +0200 Subject: [PATCH] tty.c: Add support for reloading a single TTY Signed-off-by: Joachim Nilsson --- src/sm.c | 2 +- src/tty.c | 12 +++++++++++- src/tty.h | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/sm.c b/src/sm.c index cbf34a9f..82fd669d 100644 --- a/src/sm.c +++ b/src/sm.c @@ -196,7 +196,7 @@ restart: sm->in_teardown = 1; cond_reload(); service_step_all(SVC_TYPE_SERVICE | SVC_TYPE_INETD); - tty_reload(); + tty_reload(NULL); sm->state = SM_RELOAD_WAIT_STATE; break; diff --git a/src/tty.c b/src/tty.c index bc04dfc1..ec63cf5c 100644 --- a/src/tty.c +++ b/src/tty.c @@ -374,10 +374,20 @@ int tty_respawn(pid_t pid) /* * Called after reload of /etc/finit.d/, stop/start TTYs */ -void tty_reload(void) +void tty_reload(char *dev) { tty_node_t *tty; + if (dev) { + tty = tty_find(dev); + if (!tty) + logit(LOG_WARNING, "No TTY registered for %s", dev); + else + tty_action(tty); + + return; + } + tty_sweep(); LIST_FOREACH(tty, &tty_list, link) { diff --git a/src/tty.h b/src/tty.h index 4a1fccb3..9b9ed166 100644 --- a/src/tty.h +++ b/src/tty.h @@ -67,7 +67,7 @@ void tty_start (finit_tty_t *tty); void tty_stop (finit_tty_t *tty); int tty_enabled (finit_tty_t *tty); int tty_respawn (pid_t pid); -void tty_reload (void); +void tty_reload (char *dev); void tty_runlevel (void); #endif /* FINIT_TTY_H_ */