cgroups/systemd: プロセスツリーの cgroup を生成する方法 [非ルート]

cgroups/systemd: プロセスツリーの cgroup を生成する方法 [非ルート]

root以外のユーザーとして、私はさまざまなプロセス(「作成」セッションやGoogle Chromeが各タブのプロセスを開始する方法など)を開始し、プロセスツリー全体を表示するプロセスを開始できるようにしたいと思います。単位として - たとえば、このサブツリーがCPUの200%を消費するのを見たいと思います。 sudoアクセス権がありますが、使用したくありません。

私が持っている最も近いものと同等のものはありますが、systemd-run --scopeプロセスツリーやスコープ、または同等のものが見つかりませんsystemd-cgls。また、rootとして実行する必要があるため、sudoを使用してラッパーを使用して権限を削除する必要があります。もっと良い方法がありますか?理想的にはDebian Jessieですが、必要に応じてStretchも可能です。ソリューションが単純なほど、メンテナンスの手間をかけずに複数のシステムに展開できるため、より優れています。

ベストアンサー1

次のコマンドを使用してユーザースコープグループを開始するためのルートである必要はありませんsystemd-run

$ systemd-run --user --scope /bin/bash 
  Running scope as unit run-23318.scope.
  $ sleep 999 &
  [1] 23369

単位を見ることができます:

$ systemctl --user status run-23318.scope
* run-23318.scope - /bin/bash
  Loaded: loaded (/run/user/1000/systemd/user/run-23318.scope; static; 
         vendor preset: enabled)
 Drop-In: /run/user/1000/systemd/user/run-23318.scope.d
      `-50-Description.conf
  Active: active (running) since Sun 2016-07-17 08:16:51 CEST; 10min ago
  CGroup: /user.slice/user-1000.slice/[email protected]/run-23318.scope
      |-23318 /bin/bash
      `-23369 sleep 999
  Jul 17 08:16:51 home systemd[1056]: Started /bin/bash.
  Jul 17 08:16:51 home systemd[1056]: Starting /bin/bash.

そしてまた

$ systemd-cgls /user.slice/user-1000.slice/[email protected]/run-23318.scope
   /user.slice/user-1000.slice/[email protected]/run-23318.scope:
   |-23318 /bin/bash
   `-23369 sleep 999

おすすめ記事