개발자의 끄적끄적

[php] 리눅스에서 PID 로 프로세스 동작 유무 체크 본문

개발/php

[php] 리눅스에서 PID 로 프로세스 동작 유무 체크

효벨 2020. 3. 7. 02:00
728x90
반응형

[php] 리눅스에서 PID 로 프로세스 동작 유무 체크

 

리눅스에서 프로세스가 동작중일 경우

해당 정보들이 /proc/[pid] 폴더 내부에 존재하게 됨.

프로그래밍적으로 pid를 이용해서 동일 프로세스가 동작하는지 여부는

위 폴더 유무로 체크해 줄 수 있음.

$pidFileName = "/tmp/mypid";

if (file_exists($pidFileName)) {
    $oldPid = file_get_contents($pidFileName);

    if (file_exists("/proc/$oldPid")) {
        $this->response("Exists Process");
        return false;
    }
}

주 언어가 php인 관계로 간단하게 위와같이 진행해주면

해당 스크립트가 다른 프로세스에서 동작중인지 여부를 체크해 줄 수 있음.

물론. 이때 프로세스 진입 단계에 현재 프로세스의 pid를 파일에 저장해 줄 필요가 있음.

$fd = fopen($pidFileName, 'w+');
/// pid 가져오기
$pid = getmypid();
fwrite($fd, $pid);
fclose($fd);

php 이외의 다른 언어에서도 동일하게 체크해줄 수 있음.

언어마다 사용함수만 다를뿐..

반응형
Comments