php 로 다른 php 프로 세 스 를 지 키 는 예

php 로 다른 php 프로 세 스 를 지 켜 야 합 니 다.(apache 모듈 이 실 행 된 경우,nginx 등 이 실 행 된 경 우 는 제외)
a.php 는 b.php 를 지 켜 야 합 니 다.
b.php 에서 getmypid()함 수 를 통 해 현재 프로 세 스 의 id 를 가 져 오고,id 를 c.pid 파일 에 기록 합 니 다.프로그램 이 실행 되면 c.pid 파일 을 삭제 하거나 비 웁 니 다.
a.php 에서 c.pid 가 존재 하 는 지,비어 있 는 지 검증 합 니 다.비어 있 지 않 으 면 pid 를 읽 습 니 다.exec 를 통 해 ps-p pid|grep 파일 이름 을 실행 하여 실행 여 부 를 판단 하고 판단 한 후 해당 작업 을 수행 합 니 다.
왜 ps aux|grep 파일 이름 을 직접 사용 하지 않 느 냐 는 질문 이 있 을 수 있 습 니 다.파일 이름 을 바 꾸 는 상황 에서 문제 가 발생 할 수 있 습 니 다.
a.php 코드

<?
$id=intval($argv[1]);
if(!file_exists(‘pid'.$id.'.pid')){
echo “not run”;
exit;
}
$content=file_get_contents(‘pid'.$id.'.pid');
if(empty($content)){
echo “not run”;
exit;
}
exec(“ps p “.$content.'|grep b.php',$pids);
if(count($pids)>0) echo(‘runing');
else{echo ‘not run';}
?>
b.php 코드

<?

$id=intval($argv[1]);
if(empty($id))exit;
file_put_contents(‘pid'.$id.'.pid',getmypid());
while(1){
file_put_contents(‘pid'.$id.'.pid',getmypid());
sleep(100);
}
?>

좋은 웹페이지 즐겨찾기