私は2つの異なるオペレーティングシステム(UbuntuとCentOS)で制御グループを使って作業しようとしています。聞きたい質問はほとんどありません。
このコマンドを使用して制御グループを作成しようとしていますが、cgcreate
マシンへのルートアクセスが必要なようです。これまで、この例のうち、制御グループを作成または変更するには、root権限が必要であることはありません。
本当にルートになるべきですか?究極の目標は、libcgroup APIを使用してリソースを制御するための制御グループを作成および管理するC ++アプリケーションを作成することです。ただし、C ++アプリケーションはrootユーザーによって実行されません。一般ユーザーなら誰でも可能です。
ベストアンサー1
通常cgcreate
、、、cgset
などを次のように設定しますcgdelete
。cgget
根。結局、多くのリソースの使用を制限するように設計されたプログラム/スクリプトは、一般ユーザーとして実行されます。したがって、rootに設定してユーザーとして使用して実行します。
これは-a
コマンドとパラメータを介して行われます(rootとして実行されます)。グループの起動時に既にこのような場合があります。私:-t
cgcreate
cgcreate -t モネロ:モネロ-a モネロ:モネロ-g メモリ,cpu:モネログループ
ここで monero は、cgroup の制限に従ってプログラムを実行して実行する将来のユーザーのユーザー名です。-a
サブパラメータとサブパラメータの微妙な違いについては、マニュアル-t
ページを参照してくださいcgcreate
。
peoplecgcreate
ほとんどの場合、これは同じユーザーです。
次に制限を設定します(続行ルートとして)。
cgset -r memory.limit_in_bytes=$((4*1024*1024*1024)) モネログループ
cgset -r cpu.shares=128 モネログループ
以下を行うには、項目を確認してください。
cgget -g メモリ:/monerogroup | grepバイト
次に、最後にユーザー(私の場合はmoneroユーザー)を切り替え、正しいフォルダから切り替えます。
cgexec -g メモリ、CPU: monerogroup ./monerod
ユーザーに対して特別な権限を設定すると、ユーザーに権限の問題は発生しません。