web-dev-qa-db-ja.com

UNIXでは常に優先度の低いコマンドを実行しますか?

私はNiceとreniceの方法を尋ねていません UNIXのコマンド。

何が起こるかというと、私が頻繁にログインする特定のマシンでは、優先度の低い長時間実行プロセスのみを実行することが許可されています(Nice19)。このマシン上のすべてのコマンドを、「niced 19」したかのように実行する方法はありますか?

必然的に、コマンドを開始するときに「Nice 19」というプレフィックスを付けるのを忘れてしまい、リソースを大量に消費するプロセスのpidを見つけるために、ps/topをいじくり回して、それを削除する必要があります。トラブルが多すぎて、システム管理者を煩わせるリスクがあります。デフォルトでこれを行う方法はありますか?

どうもありがとう! 〜l

3
laramichaels

Bashを想定して、システムがこの機能をサポートしている場合は、これを~/.bashrcまたは~/.profileに配置します。

ulimit -e 19

テストとして、最初にコマンドラインから試すことができます。

Sysadminに、PAMの一部であり、(私のUbuntuシステム上で)/ etc/securityにある構成ファイルであるlimits.confの調整を調べるように依頼することができます。

のような行

@users hard priority 19

ユーザーアカウントによって開始されるプロセスのデフォルトの「niceness」を設定します。

2
JAL

試しましたか とてもいい ?それは少し古いですが、それでもあなたのニーズに優れているかもしれないプログラムのようです。

更新2019-02-06:リンクが更新されました。

0

この回答は、シェルがbashであることを前提としています。

psまたはtopをいじくり回すのではなく、プロセスが(&を介して)起動されていない場合は、Ctrl-zを使用してプロセスを一時停止してから実行します。 jobs -lでpidを取得し、reniceそのpidを取得してから、bg(BackGroundの場合)またはfg(ForeGround)を介してジョブの実行を続行します。

0
Phil Miller