Menu
Categories
ps: invalid option — A
March 16, 2013 Сеть и интернет

Встроенная команда ps в используемом в OpenWrt-роутерах busybox имеет неприятную особенность, что при попытке указания лишних аргументов она вместо их игнорирования выводит ошибку и вовсе не показывает никаких данных. Научить ее понимать часто используемые параметры невозможно – единственным доступным вариантом в busybox является параметр w, а прочие просто отсутствуют.

По этой причине автоматически набирая с консоли команды вроде ps axu | grep progname вместо ожидаемого результата на консоли печатается лишь:

ps: invalid option -- A
BusyBox v1.19.4 (2013-03-20 19:33:09 MSK) multi-call binary.

Usage: ps

Show list of processes

This version of ps accepts no options

И, чертыхаясь, каждый раз приходится затирать лишние аргументы.

Ситуация вполне поддается исправлению путем замены данной утилиты на полноценную версию, отдельную от busybox. Найти ее в списке пакетов на первый взгляд нелегко, но на самом деле она скрывается в группе пакетов procps. Путем установки procps и procps-ps мы можем привнести в наш OpenWrt полноценную утилиту ps, принимающую все знакомые параметры.

Однако, работать сразу она не станет: procps-ps устанавливается в /usr/bin/ps, тогда как busybox-версия находится в /bin/ps. По этой причине необходимо либо скопировать ps из /usr/bin в /bin, либо стереть симлинк /bin/ps -> /bin/busybox.

Кстати, аналогичным образом можно добавить и полную версию утилиты top (пакет procps-top).

Leave a Reply




*