about summary refs log tree commit diff
path: root/nitro.c
diff options
context:
space:
mode:
authorLeah Neukirchen <leah@vuxu.org>2023-12-25 03:01:23 +0100
committerLeah Neukirchen <leah@vuxu.org>2023-12-25 03:01:23 +0100
commit7223ba9fbbb8ae69e02c756042d24daedc6ea219 (patch)
tree6965b302f6a7db406d7cac1ee5def1e5c2990074 /nitro.c
parent2a27cbf8681e03642e974add4bb98f97e547bd67 (diff)
downloadnitro-7223ba9fbbb8ae69e02c756042d24daedc6ea219.tar.gz
nitro-7223ba9fbbb8ae69e02c756042d24daedc6ea219.tar.xz
nitro-7223ba9fbbb8ae69e02c756042d24daedc6ea219.zip
run finish scripts for oneshots
Diffstat (limited to 'nitro.c')
-rw-r--r--nitro.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/nitro.c b/nitro.c
index b2862b7..80e006c 100644
--- a/nitro.c
+++ b/nitro.c
@@ -427,9 +427,12 @@ process_step(int i, enum process_events ev)
 			proc_shutdown(i);
 			break;
 
+		case PROC_ONESHOT:
+			proc_finish(i);
+			break;
+
 		case PROC_FATAL:
 		case PROC_DELAY:
-		case PROC_ONESHOT:
 			services[i].state = PROC_DOWN;
 			services[i].timeout = 0;
 			services[i].deadline = 0;
@@ -454,9 +457,8 @@ process_step(int i, enum process_events ev)
 			break;
 
 		case PROC_ONESHOT:
-			services[i].state = PROC_DELAY;
-			services[i].timeout = 1000;
-			services[i].deadline = 0;
+			proc_finish(i);
+			services[i].state = PROC_RESTART;
 			break;
 
 		case PROC_DOWN:
@@ -529,6 +531,7 @@ process_step(int i, enum process_events ev)
 			proc_setup(i);
 			break;
 
+		case PROC_ONESHOT:
 		case PROC_SHUTDOWN:
 			proc_cleanup(i);
 			proc_zap(i);
@@ -543,7 +546,6 @@ process_step(int i, enum process_events ev)
 		case PROC_SETUP:               /* can't happen */
 		case PROC_DOWN:                /* can't happen */
 		case PROC_DELAY:	       /* can't happen */
-		case PROC_ONESHOT:	       /* can't happen */
 			assert(!"invalid state transition");
 			break;
 		}