Вывод команды ps в AIX, HPUX и Solaris

Я пишу переносимый сценарий оболочки для получения информации о системном процессе, мне нужен идентификатор процесса, команда, pwdx (linux). В linux я могу получить эту информацию следующим образом ... но это не работает на всех других версиях unix.

 $ ps -awwwwwww -u <userid> -o pid,cmd|grep -i <filter_term> | egrep -v grep
 $ pwdx <pid>

что я должен использовать в AIX, HPUX и Solaris, чтобы получить аналогичную информацию, или какую-либо кроссплатформенную команду

В Solaris я пробовал / usr / ucb / ps, но он поддерживает форматированный вывод и lsof для эквивалента pwdx, но это также не показывает, что мне нужно.


person DevC    schedule 19.04.2012    source источник
comment
Джим, я посмотрел на Google и IBM, но я не нашел ничего эквивалента для ps -o cmd .. так что, наконец, разместил здесь .. помощь будет оценена   -  person DevC    schedule 19.04.2012
comment
Вам было бы полезно показать в своем сообщении, что вы пробовали (для справки в будущем, ВСЕГДА показывайте, что вы пробовали).   -  person Jim Garrison    schedule 19.04.2012
comment
Пожалуйста, покажите образец того, какой результат вы хотите получить в дополнение к тому, как вы его получаете в Linux.   -  person jlliagre    schedule 19.04.2012


Ответы (3)


В Solaris я пробовал / usr / ucb / ps, но он поддерживает форматированный вывод:

Что не так с форматированным выводом?

и lsof для эквивалента pwdx, но это также не показывает, что мне нужно.

Это не имеет смысла. pwdx - это собственная команда Solaris, которая изначально была реализована в этой ОС.

person jlliagre    schedule 19.04.2012

Linux! = Unix. И с той же стороны, команды не всегда будут одинаковыми, например, GNU ps не похож на Solaris ps или HP-UX ps и т.д. / usr / ucb для Solaris. Но в конечном итоге вам нужно просмотреть справочную страницу для каждой версии и просмотреть параметры выходного формата.

Редактировать. То есть вообще для всех команд. Включая grep, egrep и т. Д.

person Aaron    schedule 23.05.2012
comment
UNIX - это не Linux, но Linux - это UNIX. Так же Mac, Solaris, Android, ... (все, кроме Windows). - person Alba Mendez; 19.06.2012

Чтобы показать полное имя команды, используйте это

ps -eo comm

Это покажет команду, которая была запущена. (ps взят из / usr / bin в моей системе Solaris 5.11)

person dgm    schedule 06.09.2018