Php 获取特定于cron的pid
我正在开发一个系统,在这个系统中,我想创建和销毁cronjobs。 现在,当我创建以下cronjobs时,例如:Php 获取特定于cron的pid,php,linux,cron,pid,Php,Linux,Cron,Pid,我正在开发一个系统,在这个系统中,我想创建和销毁cronjobs。 现在,当我创建以下cronjobs时,例如: 1**** /path/users.php?id=2 1**** /path/users.php?id=3 然后我想杀死第一批cronjob用户。php?id=2 我想知道是否每个cron都通过unix创建了一个特定的processid(PID),如果是这样,我如何捕获这个特定的processid 我已经尝试了echo$$命令,但是我怀疑该命令是否会生成此特定的Cron
1**** /path/users.php?id=2
1**** /path/users.php?id=3
然后我想杀死第一批cronjob用户。php?id=2
我想知道是否每个cron都通过unix创建了一个特定的processid(PID),如果是这样,我如何捕获这个特定的processid
我已经尝试了
echo$$
命令,但是我怀疑该命令是否会生成此特定的Cron PID。如果您直接使用php而不是通过http调用脚本,则可以将其放入php脚本中:
file_put_contents("/absolute_path/cronjob_users_id_2.pid", getmypid());
这会将进程的PID写入文件中
如果脚本最终结束,您只需删除该文件:
unlink($pidfile);
试试这个
function remove($id)
{
$file = file(path/to/cron_file);
$content = '';
foreach( $file as $line )
{
list($url, $t_id) = explode('?id=', $line);
if( trim($t_id) != $id )
{
$content .= $line;
}
}
file_put_contents(path/to/cron_file, $content);
}
我通常做的是深入/proc文件系统,遍历进程目录并读取其中包含名称的文件。解决方案实际上是在我当时执行的脚本(users.php)上使用echo$$命令。我读到getmypid()函数不是杀死特定进程的正确函数。