【发布时间】:2014-03-04 20:41:43
【问题描述】:
有一个问题我找不到确切的问题,还是我不知道是不是一个问题。
我通过 php 中的 shell_exec 执行以下命令。我是只打过一次电话的用户。
curl -o ./server.log --request POST 'crawlserver.xxx.local/workerCallback.php' --user-agent 'xxx' --data 'workerid=worker1&jobid=25&offercount=72&file='/path/ to/xxx-2014-02-07-serialized.txt'
这个命令的工作时间大概是 30 秒。
当我要求以ps aux | grep workerCallback 抨击时
我看到触发了 2 个不同的命令,以及不同的进程 ID。但是当查看 server.log 文件时,它正在查看单个请求,我还检查了 db 和其他东西,请求工作单个。但是为什么它在命令行中通过不同的 pids 查找两次,并且命令几乎没有区别。命令前的“sh -c”是什么。
1000 27384 0.0 0.0 4404 612 ? S 14:00 0:00 sh -c curl -o ./server.log --request POST 'crawlserver.xxx.local/workerCallback.php' --user-agent 'xxx' --data 'workerid=worker1&jobid=25&offercount =72&file=path/to/xxx-2014-02-07-serialized.txt'
1000 27385 0.0 0.0 88056 3756 ? S 14:00 0:00 curl -o ./server.log --request POST crawlserver.xxx.local/workerCallback.php --user-agent xxx --data workerid=worker1&jobid=25&offercount=72&file=/path/to/ xxx-2014-02-07-serialized.txt
【问题讨论】:
-
1.打开一个 shell 来执行命令 2. exec command = 2 个任务
-
当你做
ps aux | grep workerCallback时,你也必须得到2-4个进程,一个是ps,一个是grep,一个(或更多)是结果 -
是的,丹,我现在明白了。谢谢。
标签: php bash curl shell-exec