アクティブプロセスのスケジューリングポリシーと優先順位を見つけるには?

アクティブプロセスのスケジューリングポリシーと優先順位を見つけるには?

すべてのアクティブなプロセスを見つけて、ユーザーにスケジュールポリシーを印刷するシェルスクリプトを作成したいと思います。これが結果であることを願っています。

pid 3042's current scheduling policy: SCHED_OTHER
pid 3042's current scheduling priority: 0
pid 3043's current scheduling policy: SCHED_OTHER
pid 3043's current scheduling priority: 0
pid 3044's current scheduling policy: SCHED_OTHER
pid 3044's current scheduling priority: 0

私はこれをうまく実行しましたが、psandchrtコマンドを使用する単一のプロセスにのみ適用されます。

ベストアンサー1

ps -c問題ありません。ただし、ほとんどの実際のアプリケーションはスレッドのサブセットの予約ポリシーのみを変更します。したがって、リアルタイムで部分的に実行できますが、 でのみ表示されますTS。完全なビューを取得するには、以下を追加して個々のスレッドを表示します-T

eric ) ps -cT -p (pidof pulseaudio)
    PID    SPID CLS PRI TTY          TIME CMD
  88821   88821 TS   30 ?        00:00:25 pulseaudio
  88821   88822 RR   45 ?        00:00:22 alsa-sink-ALC25
  88821   88823 RR   45 ?        00:00:00 alsa-source-ALC
eric ) ps -cT -p (pidof jackdbus)
    PID    SPID CLS PRI TTY          TIME CMD
  86902   86902 TS   19 ?        00:00:00 jackdbus
  86902  109091 TS   19 ?        00:00:00 jackdbus
  86902  109092 FF   50 ?        00:00:00 jackdbus
  86902  109093 TS   19 ?        00:00:00 jackdbus

したがって、ここではジャックがFIFOで実行され、パルスオーディオがループで実行されていることがわかります。指定しない場合、両方のTSプロセス-Tは読み取りのみを行います。

コマンドが機能しない場合、より良いシェルに切り替えるそれからもう一度やり直してください。

おすすめ記事