Windows Bat 检查 php 脚本是否运行
我正在使用 bat 在 win2003 调度程序上运行 php。有没有办法检查进程并查看文件是否仍在运行。
I am using a bat to run a php on win2003 scheduler. Is there a way to check the processes and see if the file is still running.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你的批处理文件怎么样:(伪代码,因为已经有一段时间了)
在 php 脚本中:
How about your batch file like this: (pseudocode, as it's been a while)
in the php-script:
在计划任务的 .php 文件中:使用
getmypid()
获取 PHP 进程的 ID (PID) 并将其保存到文件中。下次调用 .php 文件时,使用 $tasks = shell_exec('tasklist.exe'); 获取所有活动进程的列表,然后读取之前保存的 PID 并进行查找。
老实说,我不知道这是否是最好的解决方案。
In your scheduled task's .php file: Use
getmypid()
to get the PHP process' ID (PID) and save it to a file.Next time your .php file is called, use
$tasks = shell_exec('tasklist.exe');
to get a list of all active processes, then read the previously saved PID and look it up.Honestly, I don't know if this is the best solution or not.
尝试 Sysinternals 进程实用程序。
http://technet.microsoft.com/en-us/sysinternals/bb896682
pslist 实用程序正是您所需要的(给定 pid 告诉它是否正在运行设置环境变量)
问候
PS:使用 pslist 我建议也评估 pskill 实用程序
Try out Sysinternals Process Utilities.
http://technet.microsoft.com/en-us/sysinternals/bb896682
The pslist utility is just what you need (given a pid tells if it's running setting an env variable)
Regards
PS: with pslist I suggest evaluating also the pskill utility