Просмотр полного вывода команды PS



когда я запускаю ps -aux команда на моем сервере linux, к которому я подключился с помощью putty, несколько процессов слишком длинны, чтобы соответствовать моей текущей ширине окна. Есть ли альтернатива?



-- Update --



Я сожалею о понижении рейтинга, я думал, что другие тоже не найдут ответ полезным, поэтому я понизил рейтинг.



вот информация, которую вы просили.



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
669   11  

11 ответов:

вполне вероятно, что вы используете пейджер, такие как less или most С момента выхода ps aux длиннее, чем экран. Если это так, то следующие параметры приведут (или заставят) длинные линии обернуться вместо усечения.

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.

Я нашел ответ на следующий вопрос blog:
http://www.snowfrog.net/2010/06/10/solaris-ps-output-truncated-at-80-columns/

простой и совершенный:

ps -efww

не будет усекать строку

просто бросьте его на кошку, которая автоматически обертывает линию

ps aux | cat

передавая его несколько wS будет игнорировать ширину дисплея.

вы можете установить формат вывода, например, чтобы увидеть только команду и идентификатор процесса.

ps -eo pid,args

см. man-страницу ps Для получения дополнительной выходной формат. кроме того, вы можете использовать -w или --width n параметры.

если все остальное не удается, вот еще один обходной путь, (просто чтобы увидеть ваши длинные cmds)

awk '{ split(FILENAME,f,"/") ; printf "%s: %s\n", f[3], }' /proc/[0-9]*/cmdline

если вы задаете формат вывода вручную, вам также нужно убедиться, что и последние в списке выводимых полей, в противном случае он будет обрезан.

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]

Извините, что опоздал на вечеринку, но просто нашел это решение проблемы.

строки усекаются, потому что ps настаивает на использовании значения $COLUMNS, даже если выход не является экраном в этот момент. Что является ошибкой, ИМХО. Но легко обойти, просто сделать ps думаю, что у вас есть сверхширокий экран, т. е. установите столбцы высоко на время выполнения команды ps. Пример:

$ ps -edalf                 # truncates lines to screen width
$ COLUMNS=1000 ps -edalf    # wraps lines regardless of screen width

Я надеюсь, что это все еще полезно для кого-то. Все остальные идеи казались слишком сложно :)

Если вы grep команда, которую вы ищете с трубой от ps aux, она автоматически обернет текст. Я использовал много других ответов здесь, но иногда, если вы ищете что-то конкретное, приятно просто использовать grep а вы знаете, что он будет переносить строки.

например ps aux | grep ffmpeg .

Если ни одно из вышеперечисленных решений не работает, вывод ps Не твоя проблема. Может быть, вам нужно установить putty в перенос длинных строк?

в противном случае, нам нужна дополнительная информация.

Я нашел этот ответ, который прибил его для меня, поскольку ни один из вышеперечисленных ответов не работал

https://unix.stackexchange.com/questions/91561/ps-full-command-is-too-long

в принципе, ядро ограничивает мою строку cmd.

Comments

    Ничего не найдено.