首页 > 解决方案 > 在 solaris 中使用 ps 看不到完整命令

问题描述

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 在这种情况下

标签: unixsolarisps

解决方案


您可以在 Solaris 中使用:

pargs -l PID

如果您知道进程的 PID,则将进程的所有参数放在一行中。您也可以通过以下方式获得 process 的特定参数:

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)从 ps 获取 PID,2)从 pargs 获取完整的参数。

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

推荐阅读