我正在使用bat在win2003调度程序上运行php。有没有办法检查进程并查看文件是否仍在运行。
答案 0 :(得分:1)
你的批处理文件怎么样:(伪代码,因为它已经有一段时间了)
:makerandom
make som random var, microtime, whatever, we call it %x%
check if file exist, if it does, goto makerandom
call the script with %x% as argument
:check
if file exist %x% goto check
:done
在php脚本中:
create the file specified by the argument
... script here ...
delete the file
答案 1 :(得分:0)
在计划任务的.php文件中:使用getmypid()
获取PHP进程的ID(PID)并将其保存到文件中。
下次调用.php文件时,使用$tasks = shell_exec('tasklist.exe');
获取所有活动进程的列表,然后读取以前保存的PID并进行查找。
老实说,我不知道这是否是最佳解决方案。
答案 2 :(得分:0)
试用Sysinternals Process Utilities。
http://technet.microsoft.com/en-us/sysinternals/bb896682
pslist实用程序正是你需要的(给定一个pid告诉它是否正在运行设置一个env变量)
此致
PS:使用pslist我建议还要评估pskill实用程序