我正在使用phing并通过ExecTask运行selenium服务器.有时我需要通过终止其进程来停止运行服务器.
是否有可能在ExecTask中产生进程的PID?
不,ExecTask不能直接给出生成进程的pid.它只能返回它的退出状态和输出.
原文链接:https://www.f2er.com/php/133889.html也许您可以修改在ExecTask中运行的命令来保存生成进程的pid.你可以使用$!获取最近的后台命令的pid.
job1 & //start job1 and run in background,end command with & p1=$! //stores the pid echo $p1 //gives pid of job1
当你想要杀死selenium服务器时,你可以在另一个ExecTask中调用它:
pkill pid_to_kill
我不确定在shell环境中使用ExecTask进行的更改是否保留.如果是,则可以使用$p1.用$p1替换pid_to_kill以杀死job1.否则,您将必须回显pid并使用其输出中的值.
否则你将做pgrep name_of_program.它将为包含该名称的所有进程提供.然后你可以用pkill杀死它.