puTTYを使用して接続したLinuxサーバーでps -aux
コマンドを実行すると、現在のウィンドウ幅に収まらないほど長いプロセスはほとんどありません。代替手段はありますか?
-更新-
ダウングレードして申し訳ありません。他の人も答えが役に立たないと思ったので、ダウングレードしました。
ここにあなたが求めた情報があります。
hadoop-user@hadoop-desk:~$ echo $TERM
xterm
hadoop-user@hadoop-desk:~$ stty -a
speed 38400 baud; rows 47; columns 158; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
hadoop-user@hadoop-desk:~$ echo $COLUMNS
158
ps aux
の出力は画面よりも長いため、 less
や most
などのページャーを使用している可能性があります。その場合、次のオプションを使用すると、長い行が切り捨てられるのではなく折り返されます(または強制されます)。
ps aux | less -+S
ps aux | most -w
次のコマンドのいずれかを使用する場合、行は折り返されませんが、矢印キーまたは他の移動キーを使用して左右にスクロールできます。
ps aux | less -S # use arrow keys, or Esc-( and Esc-), or Alt-( and Alt-)
ps aux | most # use arrow keys, or < and > (Tab can also be used to scroll right)
more
およびpg
の行は常にラップされます。
ps aux
がパイプで使用される場合、w
は端末への出力時にのみ画面幅を使用するため、ps
オプションは不要です。
auxww
フラグを使用すると、ターミナルウィンドウとシェルスクリプトの両方で出力へのフルパスが表示されます。
darragh@darraghserver ~ $uname -a
SunOS darraghserver 5.10 Generic_142901-13 i86pc i386 i86pc
darragh@darraghserver ~ $which ps
/usr/bin/ps<br>
darragh@darraghserver ~ $/usr/ucb/ps auxww | grep ps
darragh 13680 0.0 0.0 3872 3152 pts/1 O 14:39:32 0:00 /usr/ucb/ps -auxww
darragh 13681 0.0 0.0 1420 852 pts/1 S 14:39:32 0:00 grep ps
ps aux
は、すべてのユーザーが実行したすべてのプロセスをリストします。詳細については、man ps
を参照してください。 ww
フラグは、無制限の幅を設定します。
-w Wide output. Use this option twice for unlimited width.
w Wide output. Use this option twice for unlimited width.
次のブログで答えを見つけました。
http://www.snowfrog.net/2010/06/10/solaris-ps-output-truncated-at-80-columns/
シンプルで完璧:
ps -efww
行を切り捨てません
猫に投げるだけで、自動的に折り返されます
ps aux | cat
いくつかのw
sを渡すと、表示幅は無視されます。
出力形式を手動で指定する場合は、出力フィールドのリストでargs
オプションがlastであることも確認する必要があります。そうでない場合は切り捨てられます。
ps -A -o args,pid,lstart
は与える
/usr/lib/postgresql/9.5/bin 29900 Thu May 11 10:41:59 2017
postgres: checkpointer proc 29902 Thu May 11 10:41:59 2017
postgres: writer process 29903 Thu May 11 10:41:59 2017
postgres: wal writer proces 29904 Thu May 11 10:41:59 2017
postgres: autovacuum launch 29905 Thu May 11 10:41:59 2017
postgres: stats collector p 29906 Thu May 11 10:41:59 2017
[kworker/2:0] 30188 Fri May 12 09:20:17 2017
/usr/lib/upower/upowerd 30651 Mon May 8 09:57:58 2017
/usr/sbin/Apache2 -k start 31288 Fri May 12 07:35:01 2017
/usr/sbin/Apache2 -k start 31289 Fri May 12 07:35:01 2017
/sbin/rpc.statd --no-notify 31635 Mon May 8 09:49:12 2017
/sbin/rpcbind -f -w 31637 Mon May 8 09:49:12 2017
[nfsiod] 31645 Mon May 8 09:49:12 2017
[kworker/1:0] 31801 Fri May 12 09:49:15 2017
[kworker/u16:0] 32658 Fri May 12 11:00:51 2017
しかし、ps -A -o pid,lstart,args
は完全なコマンドラインを取得します。
29900 Thu May 11 10:41:59 2017 /usr/lib/postgresql/9.5/bin/postgres -D /tmp/4493-d849-dc76-9215 -p 38103
29902 Thu May 11 10:41:59 2017 postgres: checkpointer process
29903 Thu May 11 10:41:59 2017 postgres: writer process
29904 Thu May 11 10:41:59 2017 postgres: wal writer process
29905 Thu May 11 10:41:59 2017 postgres: autovacuum launcher process
29906 Thu May 11 10:41:59 2017 postgres: stats collector process
30188 Fri May 12 09:20:17 2017 [kworker/2:0]
30651 Mon May 8 09:57:58 2017 /usr/lib/upower/upowerd
31288 Fri May 12 07:35:01 2017 /usr/sbin/Apache2 -k start
31289 Fri May 12 07:35:01 2017 /usr/sbin/Apache2 -k start
31635 Mon May 8 09:49:12 2017 /sbin/rpc.statd --no-notify
31637 Mon May 8 09:49:12 2017 /sbin/rpcbind -f -w
31645 Mon May 8 09:49:12 2017 [nfsiod]
31801 Fri May 12 09:49:15 2017 [kworker/1:0]
32658 Fri May 12 11:00:51 2017 [kworker/u16:0]
コマンドとプロセスIDのみを表示するなど、出力形式を設定できます。
ps -eo pid,args
出力形式の詳細については、psのマニュアルページを参照してください。または、-w
または--width n
オプションを使用できます。
他のすべてが失敗した場合は、別の回避策があります(長いコマンドを表示するためだけに)
awk '{ split(FILENAME,f,"/") ; printf "%s: %s\n", f[3],$0 }' /proc/[0-9]*/cmdline
パーティーに遅れてすみませんが、この問題の解決策を見つけました。
Psは$ COLUMNSの値を使用することを要求するため、その時点で出力が画面でなくても、行は切り捨てられます。これはバグです、私見。ただし、回避策は簡単です。psにスーパーワイドスクリーンがあると思わせる、つまりpsコマンドの実行中はCOLUMNSを高く設定してください。例:
$ ps -edalf # truncates lines to screen width
$ COLUMNS=1000 ps -edalf # wraps lines regardless of screen width
これがまだ誰かに役立つことを願っています。他のすべてのアイデアは非常に複雑に見えました:)
上記の解決策がいずれも機能しない場合、ps
の出力は問題ではありません。たぶん、PuTTYを 長い行を折り返す ?に設定する必要があります
それ以外の場合は、さらに情報が必要です。
Ps auxからのパイプで探しているコマンドをgrep
すると、テキストが自動的にラップされます。私はここで他の多くの回答を使用しましたが、特定の何かを探している場合は、単にgrep
を使用すると行が折り返されることがわかっています。
例えばps aux | grep ffmpeg
。
上記の答えがどれもうまくいかなかったので、私はこの答えを見つけました
https://unix.stackexchange.com/questions/91561/ps-full-command-is-too-long
基本的に、カーネルはcmd行を制限しています。