unix - 在 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 在这种情况下
解决方案
您可以在 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
推荐阅读
- android - 如何在 Kotlin 登录中添加多个用户?
- python - 绘制图形时出现尺寸错误
- arrays - 我们可以找到线性时间复杂度 O(n) 的数组中每个元素的等级吗?
- javascript - Highcharts 气泡图鼠标悬停破坏动画
- typescript - 使用 Prettier Eslint 时找不到模块“@typescript-eslint/parser”
- python - Dask:在大数据帧上设置索引会导致处理期间的磁盘空间使用率很高
- cypress - Cypress.io - 使用 location.href 将用户重定向到同源会导致跨源错误
- python - 使用 Python 请求自动将文件上传到 Flask 环境
- python - 大熊猫中的奇怪字典
- android - 如何从安卓应用打开通知日志?