起動時に開始されるサービスの niceness または優先度を設定する方法

起動時に開始されるサービスの niceness または優先度を設定する方法

増やしたいサービスの素晴らしさ/etc/security/limits.conf(CPU 優先度を下げる) は、ブート プロセス中に専用ユーザーまたはグループとして開始されました。エントリがサービスに対して監視されないため、目的のユーザーのディレクトリまたはディレクトリで niceness または優先度を定義することはできません./limits.d/。(?)

特に、CentOS 6.6を搭載したいくつかの小さなvServerがあり、Torリレーを実行したいと考えています(オニオンルーター) をそれぞれにインストールします。tor デーモンは、起動時にサービスとして起動し、sudo /sbin/chkconfig(実行レベル: 2、3、4、5) で設定されます。tor プロセスのユーザーとグループは です_tor

ユーザー_torが所有者であるすべてのプロセスのniceまたは優先度レベルをどこで変更する必要がありますか? nice値は、すべてのブート時および手動サービス開始時( service tor start)に適用する必要があります。

答え1

古典的なアプローチは、サービス起動スクリプト内でniceand/orを使用することです。おそらく次のようなものになります:ionice

case "$1" in
    start)
    echo "Starting tor daemon"
    /path/to/tor-daemon

これを次のように変更します

    echo "Starting tor daemon"
    nice /path/to/tor-daemon

あるいは、起動スクリプトはデーモンの PID などをログに記録することが多く、デーモンの起動後にその PID を/var/run/pid-of-tor-daemon使用することもできます。renice


より良いアプローチはcgroupsを使うことです。ここで答えるには少し長すぎますが、Red Hat ドキュメント役に立つスタートになるかもしれません。

関連情報