我正在尝试使用 systemd保护程序和过程子集对调用者隐藏“其他”进程的指令:
# systemd-run --wait -p ProtectProc=invisible -p ProcSubset=pid --pty --collect --service-type=exec ls -lh /proc/ | wc -l
Running as unit: run-u2896.service
Press ^] three times within 1s to disconnect TTY.
Finished with result: success
Main processes terminated with: code=exited/status=0
Service runtime: 25ms
CPU time consumed: 8ms
312
我们可以看到,里面有 312 个进程。我们还看到/proc
似乎安装正确:
# systemd-run --wait -p ProtectProc=invisible -p ProcSubset=pid --pty --collect --service-type=exec grep proc /proc/self/mountinfo
<...>
992 971 0:92 / /proc rw,nosuid,nodev,noexec,relatime shared:481 - proc proc rw,hidepid=invisible,subset=pid
<...>
我是否正确理解了什么hidepid=
和subset=
做什么?我希望在这里看到 1-2 个进程,而不是 300 多个。
Linux 5.10.0-3-amd64、systemd 247.3-1(debian bullseye)