Round 318: Cgroups ext, Cgroupfs ext, Systemd-cgtop ext, Systemd-run ext, Nsenter ext (20 commands)
ober
384d04849ba6466cd91410f510e21f63fe379054
--- a/docs/jemacs-vs-emacs.md +++ b/docs/jemacs-vs-emacs.md @@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features | ebib-import-file | :orange_circle: | Import file into Ebib | | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer | +### Round 318 — Cgroups ext, Cgroupfs ext, Systemd-cgtop ext, Systemd-run ext, Nsenter ext + +| Feature | Status | Notes | +|---------|--------|-------| +| `cgroup-delete` | :orange_circle: | Delete cgroup | +| `cgroup-freeze` | :orange_circle: | Freeze cgroup | +| `cgroup-thaw` | :orange_circle: | Thaw cgroup | +| `cgroup-stat` | :orange_circle: | Show cgroup stats | +| `cgroupfs-mount` | :orange_circle: | Mount cgroup filesystem | +| `cgroupfs-umount` | :orange_circle: | Unmount cgroup filesystem | +| `cgroupfs-list` | :orange_circle: | List cgroup controllers | +| `cgroupfs-info` | :orange_circle: | Show controller info | +| `systemd-cgtop-show` | :orange_circle: | Show control group top | +| `systemd-cgtop-depth` | :orange_circle: | Set cgtop depth | +| `systemd-cgtop-sort` | :orange_circle: | Sort cgtop output | +| `systemd-cgtop-batch` | :orange_circle: | Cgtop batch mode | +| `systemd-run-transient` | :orange_circle: | Run transient unit | +| `systemd-run-scope` | :orange_circle: | Run in scope | +| `systemd-run-slice` | :orange_circle: | Run in slice | +| `systemd-run-shell` | :orange_circle: | Launch shell in unit | +| `nsenter-pid` | :orange_circle: | Enter PID namespace | +| `nsenter-mount` | :orange_circle: | Enter mount namespace | +| `nsenter-net` | :orange_circle: | Enter network namespace | +| `nsenter-user` | :orange_circle: | Enter user namespace | + ### Round 317 — Ipmitool ext, Lm-sensors ext, Turbostat ext, Cpupower ext, Numactl ext | Feature | Status | Notes | --- a/src/jerboa-emacs/editor-extra-final.ss +++ b/src/jerboa-emacs/editor-extra-final.ss @@ -23879,4 +23879,62 @@ (let* ((echo (app-state-echo app))) (echo-read-string echo "Nodes: " (lambda (nodes) - (echo-message! echo (str "Numactl: interleaving across " nodes)))))) \ No newline at end of file + (echo-message! echo (str "Numactl: interleaving across " nodes)))))) + +;;; Round 318 — Systemd-cgtop ext, Systemd-run ext, Nsenter ext (batch 2) + +(def (cmd-systemd-cgtop-sort app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Sort by (cpu/memory/io): " + (lambda (key) + (echo-message! echo (str "Systemd-cgtop: sorting by " key)))))) + +(def (cmd-systemd-cgtop-batch app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Systemd-cgtop: batch mode output"))) + +(def (cmd-systemd-run-transient app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Command: " + (lambda (cmd) + (echo-message! echo (str "Systemd-run: transient unit for " cmd)))))) + +(def (cmd-systemd-run-scope app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Command: " + (lambda (cmd) + (echo-message! echo (str "Systemd-run: scope for " cmd)))))) + +(def (cmd-systemd-run-slice app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Slice name: " + (lambda (slice) + (echo-message! echo (str "Systemd-run: in slice " slice)))))) + +(def (cmd-systemd-run-shell app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Systemd-run: launching shell in transient unit"))) + +(def (cmd-nsenter-pid app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "PID: " + (lambda (pid) + (echo-message! echo (str "Nsenter: entering PID namespace of " pid)))))) + +(def (cmd-nsenter-mount app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "PID: " + (lambda (pid) + (echo-message! echo (str "Nsenter: entering mount namespace of " pid)))))) + +(def (cmd-nsenter-net app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "PID: " + (lambda (pid) + (echo-message! echo (str "Nsenter: entering net namespace of " pid)))))) + +(def (cmd-nsenter-user app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "PID: " + (lambda (pid) + (echo-message! echo (str "Nsenter: entering user namespace of " pid)))))) \ No newline at end of file --- a/src/jerboa-emacs/editor-extra-modes.ss +++ b/src/jerboa-emacs/editor-extra-modes.ss @@ -24584,3 +24584,57 @@ (lambda (sec) (echo-message! echo (str "Turbostat: monitoring every " sec "s")))))) +;;; Round 318 — Cgroups ext, Cgroupfs ext, Systemd-cgtop ext, Systemd-run ext, Nsenter ext (batch 1) + +(def (cmd-cgroup-delete app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Cgroup path: " + (lambda (path) + (echo-message! echo (str "Cgroup: deleting " path)))))) + +(def (cmd-cgroup-freeze app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Cgroup to freeze: " + (lambda (cg) + (echo-message! echo (str "Cgroup: freezing " cg)))))) + +(def (cmd-cgroup-thaw app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Cgroup to thaw: " + (lambda (cg) + (echo-message! echo (str "Cgroup: thawing " cg)))))) + +(def (cmd-cgroup-stat app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Cgroup path: " + (lambda (cg) + (echo-message! echo (str "Cgroup: showing stats for " cg)))))) + +(def (cmd-cgroupfs-mount app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Cgroupfs: mounting cgroup filesystem"))) + +(def (cmd-cgroupfs-umount app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Cgroupfs: unmounting cgroup filesystem"))) + +(def (cmd-cgroupfs-list app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Cgroupfs: listing controllers"))) + +(def (cmd-cgroupfs-info app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Controller: " + (lambda (ctrl) + (echo-message! echo (str "Cgroupfs: showing info for " ctrl)))))) + +(def (cmd-systemd-cgtop-show app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Systemd-cgtop: showing control group top"))) + +(def (cmd-systemd-cgtop-depth app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Depth: " + (lambda (d) + (echo-message! echo (str "Systemd-cgtop: depth " d)))))) + --- a/src/jerboa-emacs/editor-extra-regs2.ss +++ b/src/jerboa-emacs/editor-extra-regs2.ss @@ -8095,4 +8095,25 @@ (register-command! 'numactl-hardware cmd-numactl-hardware) (register-command! 'numactl-bind cmd-numactl-bind) (register-command! 'numactl-interleave cmd-numactl-interleave) + ;; Round 318 + (register-command! 'cgroup-delete cmd-cgroup-delete) + (register-command! 'cgroup-freeze cmd-cgroup-freeze) + (register-command! 'cgroup-thaw cmd-cgroup-thaw) + (register-command! 'cgroup-stat cmd-cgroup-stat) + (register-command! 'cgroupfs-mount cmd-cgroupfs-mount) + (register-command! 'cgroupfs-umount cmd-cgroupfs-umount) + (register-command! 'cgroupfs-list cmd-cgroupfs-list) + (register-command! 'cgroupfs-info cmd-cgroupfs-info) + (register-command! 'systemd-cgtop-show cmd-systemd-cgtop-show) + (register-command! 'systemd-cgtop-depth cmd-systemd-cgtop-depth) + (register-command! 'systemd-cgtop-sort cmd-systemd-cgtop-sort) + (register-command! 'systemd-cgtop-batch cmd-systemd-cgtop-batch) + (register-command! 'systemd-run-transient cmd-systemd-run-transient) + (register-command! 'systemd-run-scope cmd-systemd-run-scope) + (register-command! 'systemd-run-slice cmd-systemd-run-slice) + (register-command! 'systemd-run-shell cmd-systemd-run-shell) + (register-command! 'nsenter-pid cmd-nsenter-pid) + (register-command! 'nsenter-mount cmd-nsenter-mount) + (register-command! 'nsenter-net cmd-nsenter-net) + (register-command! 'nsenter-user cmd-nsenter-user) )