【发布时间】:2016-11-09 13:11:33
【问题描述】:
我的 shell 脚本运行时间很长(运行时间超过 24 小时)。
这是一个非常简单的脚本。它只是从目录中读取 xml 文件并对文件内容执行sed 操作。目录中有 100 万个 xml 文件。
我的脚本名称类似于 runDataManipulation.sh
当我运行以下命令时
ps -ef | grep "runDa*"
然后有时我会看到我的过程
username 34535 1 48 11:42:01 - 224:22 /usr/bin/ksh ./runDataManipulation.sh
但如果我在几秒钟后运行完全相同的命令,那么我根本看不到上述过程。
由于我的进程一直在运行,所以我希望 ps 命令始终显示该进程。
如果我在脚本的进程 ID 上执行 grep,例如 ..
ps -ef | grep 34535
然后有时我会看到类似的结果
username 34535 1 51 11:42:01 - 229:22 [ksh]
有时我会看到类似的结果
username 45678 34535 0 14:12:11 - 0:0 [sed]
我的主要问题是......当我使用脚本名称为我的进程grep 时,为什么我看不到我的进程。我正在使用AIX 6.1。
【问题讨论】:
-
查看
runDataManipulation.sh脚本的内容会很有用,因为它必须做一些事情来改变它的进程列表。值得注意的是,在 AIX 上,您可以修改*argv[]的内容(用 C 语言),您的更改将反映在进程列表中。并非所有 Unix 操作系统都允许这样做。