Skip to content

Commit 69c60fd

Browse files
committed
feat: verify until start/stop/restart completes
1 parent 2f745f1 commit 69c60fd

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

src/infrastructure/systemd_service_adapter.rs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,21 +191,33 @@ impl ServiceRepository for SystemdServiceAdapter {
191191
let proxy = self.manager_proxy()?;
192192
let _job: OwnedObjectPath = proxy.call("StartUnit", &(name, "replace"))?;
193193
thread::sleep(Duration::from_millis(SLEEP_DURATION));
194-
self.get_unit(name)
194+
let mut service = self.get_unit(name)?;
195+
while service.state().active().ends_with("ing") {
196+
service = self.get_unit(name)?;
197+
}
198+
Ok(service)
195199
}
196200

197201
fn stop_service(&self, name: &str) -> Result<Service, Box<dyn std::error::Error>> {
198202
let proxy = self.manager_proxy()?;
199203
let _job: OwnedObjectPath = proxy.call("StopUnit", &(name.to_string(), "replace"))?;
200204
thread::sleep(Duration::from_millis(SLEEP_DURATION));
201-
self.get_unit(name)
205+
let mut service = self.get_unit(name)?;
206+
while service.state().active().ends_with("ing") {
207+
service = self.get_unit(name)?;
208+
}
209+
Ok(service)
202210
}
203211

204212
fn restart_service(&self, name: &str) -> Result<Service, Box<dyn std::error::Error>> {
205213
let proxy = self.manager_proxy()?;
206214
let _job: OwnedObjectPath = proxy.call("RestartUnit", &(name, "replace"))?;
207215
thread::sleep(Duration::from_millis(SLEEP_DURATION));
208-
self.get_unit(name)
216+
let mut service = self.get_unit(name)?;
217+
while service.state().active().ends_with("ing") {
218+
service = self.get_unit(name)?;
219+
}
220+
Ok(service)
209221
}
210222

211223
fn enable_service(&self, name: &str) -> Result<Service, Box<dyn std::error::Error>> {

src/terminal/components/list.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,7 @@ impl TableServices {
382382
)));
383383

384384
help_text.push(Line::from(
385-
"Navigate: ↑/↓ | Switch tab: ←/→ | Toggle Filter: f | Start: s | Stop: x | Restart: r | Enable: e | Disable: d | Refresh all: u | Log: v | Unit File: c"
385+
"Navigate: ↑/↓ | Switch tab: ←/→ | List all: f | Start: s | Stop: x | Restart: r | Enable: e | Disable: d | Refresh all: u | Log: v | Unit File: c"
386386
));
387387
}
388388

0 commit comments

Comments
 (0)