Skip to content

Commit d2a7f34

Browse files
committed
Add supervisor process manager UI
Add a process manager page accessible from the top-right menu that shows all supervisor processes with their status, PID, and controls to stop/remove individual processes or clear all stopped ones. Backend: Add SvList/SvStop/SvRemove RPC methods to the Vmm protobuf service so the API is included in the auto-generated OpenAPI schema. Frontend: Full-screen overlay with auto-refreshing process table, status badges, and action buttons.
1 parent 8159538 commit d2a7f34

7 files changed

Lines changed: 1275 additions & 3 deletions

File tree

vmm/rpc/proto/vmm_rpc.proto

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,13 @@ service Vmm {
343343
// Report a DHCP lease event (called by the DHCP server, e.g. dnsmasq --dhcp-script).
344344
// The VMM resolves the MAC address to a VM and reconfigures port forwarding.
345345
rpc ReportDhcpLease(DhcpLeaseRequest) returns (google.protobuf.Empty);
346+
347+
// List all supervisor processes.
348+
rpc SvList(google.protobuf.Empty) returns (SvListResponse);
349+
// Stop a supervisor process by ID.
350+
rpc SvStop(Id) returns (google.protobuf.Empty);
351+
// Remove a stopped supervisor process by ID.
352+
rpc SvRemove(Id) returns (google.protobuf.Empty);
346353
}
347354

348355
// DHCP lease event reported by the host DHCP server.
@@ -352,3 +359,19 @@ message DhcpLeaseRequest {
352359
// IPv4 address assigned by DHCP (e.g. "192.168.122.100")
353360
string ip = 2;
354361
}
362+
363+
// Response containing a list of supervisor processes.
364+
message SvListResponse {
365+
repeated SvProcessInfo processes = 1;
366+
}
367+
368+
// Information about a single supervisor process.
369+
message SvProcessInfo {
370+
string id = 1;
371+
string name = 2;
372+
// Status: "running", "stopped", "exited(<code>)", "error(<msg>)"
373+
string status = 3;
374+
optional uint32 pid = 4;
375+
string command = 5;
376+
string note = 6;
377+
}

0 commit comments

Comments
 (0)