解決策 1:
「ulimit」は「アプリケーションごと」のコントロールです…実際にはプロセスごとです。 ulimit シェル コマンドは、シェル プロセスとその子プロセスの制限を設定するシェル組み込みコマンドです。アプリケーションを開始するスクリプトに「ulimit」コマンドを挿入すると、このアプリケーションのみに制限が設定されます。
解決策 2:
systemd ベースのディストリビューションでは、systemd-run (間接的に cgroup を使用する) も使用できます。 .例:
systemd-run --scope -p MemoryLimit=1G firefox
注:これはパスワードを要求しますが、アプリはユーザーとして起動されます。これにより、コマンドを sudo
で実行する必要があると誤解されないようにしてください。 、それはコマンドがルートの下で実行される原因となるためです。これはあなたの意図とはほとんど関係ありません.
パスワードを入力したくない場合 (実際、既に所有しているメモリを制限するためになぜパスワードが必要なのですか) 、 --user
を使用できます オプションですが、これを機能させるには、cgroupsv2 サポートを有効にする必要があります。現在、systemd.unified_cgroup_hierarchy
で起動する必要があります。 カーネル パラメータ