summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xexamples/cgroup.py15
-rw-r--r--linuxnamespaces/__init__.py11
2 files changed, 13 insertions, 13 deletions
diff --git a/examples/cgroup.py b/examples/cgroup.py
index 34bf01b..2a423d3 100755
--- a/examples/cgroup.py
+++ b/examples/cgroup.py
@@ -18,19 +18,8 @@ import linuxnamespaces
import linuxnamespaces.systemd
-def get_cgroup(pid: int = -1) -> pathlib.PurePath:
- """Look up the cgroup that the given pid or the running process belongs
- to.
- """
- return pathlib.PurePath(
- pathlib.Path(
- f"/proc/{pid}/cgroup" if pid > 0 else "/proc/self/cgroup"
- ).read_text().split(":", 2)[2].strip()
- )
-
-
def main() -> None:
- mycgroup = get_cgroup()
+ mycgroup = linuxnamespaces.get_cgroup()
if not os.access(
pathlib.Path("/sys/fs/cgroup") / mycgroup.relative_to("/"),
os.W_OK,
@@ -45,7 +34,7 @@ def main() -> None:
properties={"Delegate": True},
),
)
- mycgroup = get_cgroup()
+ mycgroup = linuxnamespaces.get_cgroup()
except NotImplementedError:
linuxnamespaces.systemd.reexec_as_transient_unit(
properties={"Delegate": True}
diff --git a/linuxnamespaces/__init__.py b/linuxnamespaces/__init__.py
index a2c7985..cd30498 100644
--- a/linuxnamespaces/__init__.py
+++ b/linuxnamespaces/__init__.py
@@ -367,6 +367,17 @@ def bind_mount(
mount(srcloc, tgtloc, None, mflags)
+def get_cgroup(pid: int = -1) -> pathlib.PurePath:
+ """Look up the cgroup that the given pid or the current process belongs
+ to.
+ """
+ return pathlib.PurePath(
+ pathlib.Path(
+ f"/proc/{pid}/cgroup" if pid > 0 else "/proc/self/cgroup"
+ ).read_text().split(":", 2)[2].strip()
+ )
+
+
_P = typing.ParamSpec("_P")
class _ExceptionExitCallback: