cgroup子系统has a way to accomplish this通过写入/ sys / fs / cgroup / freezer /中的文件,但只适用于cgroup级别 – 也就是说,一次只能冻结整组进程/线程.我想通过安排将每个进程放在它自己的cgroup中可以解决这个问题,但这似乎有点麻烦,而且可能因为systemd等而存在危险.已经将cgroup用于自己的目的.
我非常接近只编写一个内核模块,将底层的freeze_task API暴露给用户空间,但我真的希望尽可能避免这样做!
解决方法 我能够使用这些方向轻松地冻结和解冻单个过程(xeyes): https://www.kernel.org/doc/Documentation/cgroup-v1/freezer-subsystem.txt我知道它与您链接的文档相同,但我没有看到这样做的问题.您可以轻松编写脚本/程序来自动执行此 *** 作并根据需要冻结单个进程.
在我的Ubuntu 16.04系统上,/ sys / fs / cgroup / freezer已经存在,所以我跳过了那一部分.
* Examples of usage : # mkdir /sys/fs/cgroup/freezer # mount -t cgroup -ofreezer freezer /sys/fs/cgroup/freezer # mkdir /sys/fs/cgroup/freezer/0 # echo $some_pID > /sys/fs/cgroup/freezer/0/tasksto get status of the freezer subsystem : # cat /sys/fs/cgroup/freezer/0/freezer.state THAWEDto freeze all tasks in the container : # echo FROZen > /sys/fs/cgroup/freezer/0/freezer.state # cat /sys/fs/cgroup/freezer/0/freezer.state FREEZING # cat /sys/fs/cgroup/freezer/0/freezer.state FROZento unfreeze all tasks in the container : # echo THAWED > /sys/fs/cgroup/freezer/0/freezer.state # cat /sys/fs/cgroup/freezer/0/freezer.state THAWED
我不知道如何清理.我无法删除0目录.但我确信有办法.
这是否足够好还是还有其他需要的东西?
总结以上是内存溢出为你收集整理的linux – 透明地冻结和解冻进程?全部内容,希望文章能够帮你解决linux – 透明地冻结和解冻进程?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)