#!/usr/bin/perl # # CPU affinityの一覧を表示する。 # use strict; use warnings; my @result; my $mode = 0; if (@ARGV >= 1) { if ($ARGV[0] eq "tree") { $mode = 1; } } if ($mode == 0) { @result = `ps aux`; } else { @result = `ps auxf`; } foreach my $line(@result) { my @a = split(/\s+/, $line); # 複数の空白や改行でで分割 if ($a[1] eq "PID") { print "AFFIN " . $line; } else { my $affi = `taskset -pc $a[1] 2>&1`; # エラー出力は標準へ if ($? == 0) { # コマンド実行のリターンコード my @b = split(/\s+/, $affi); # 複数の空白や改行で分割 my $str = sprintf("%-6s", $b[$#b]); # CPU affinity print $str . $line; } } }