Полная команда не отображается при использовании ps в солярисе - PullRequest
0 голосов
/ 09 мая 2018

команда, запущенная cronjob

bin/bash /abc/bcd/def/ghi/connectivity/connectivity_script.sh start tof as abcde with abc/abc.prop

Но пока я пытаюсь увидеть этот процесс, используя

/usr/ucb/ps -auwwwxxxx | egrep "connectivity_script.sh"  | cat

Я просто вижу ниже, но не всю команду.

bin/bash /abc/bcd/def/ghi/connectivity/connectivity_script.sh start tof as

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

abc / abc.prop в данном случае

Ответы [ 2 ]

0 голосов
/ 10 июля 2018

Как говорит Саша, pargs - это лучший (и только в более старых версиях Solaris) способ взглянуть на весь вектор аргумента процесса, но pgrep - это лучший способ найти процесс в первую очередь. Поскольку вы ищете не имя исполняемого файла, вам понадобится аргумент -f. Таким образом:

pgrep -f connectivity_script.sh

В сочетании с pargs:

pargs $(pgrep -f connectivity_script.sh)

Обратите внимание, что если вы не являетесь владельцем процесса или не имеете повышенных привилегий, вы не сможете увидеть весь вектор аргумента процесса, и поэтому вызов pgrep может не найти то, что вы ищете, и определенно паргирует не покажу это. Это ограничение присутствует даже в упомянутых более новых версиях Solaris Andrew.

0 голосов
/ 10 мая 2018

Вы можете использовать в Solaris:

pargs -l PID

чтобы получить все аргументы процесса в одной строке, если вы знаете его PID. Также вы можете получить конкретный аргумент процесса следующим образом:

pargs -a PID | grep 'argv\[8\]' | cut -d: -f 2 

Или вы можете использовать ps с параметрами, если вам известен только один из аргументов процесса:

/usr/bin/ps -A -o pid,args | grep connectivity_script.sh | grep -v grep

В более старых версиях Solaris вывод аргументов в / usr / bin / ps ограничен 80 символами, поэтому вам нужно выполнить два шага: 1) получить PID из ps, 2) получить полный аргумент из pargs.

PID=$(/usr/bin/ps -A -o pid,args | \
      grep connectivity_script.sh | \
      grep -v grep | \
      cut -d" " -f 1 )
pargs -l $PID
...