리눅스에서 프로세스가 동작중일 경우
해당 정보들이 /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 이외의 다른 언어에서도 동일하게 체크해줄 수 있음.
언어마다 사용함수만 다를뿐..
'Develop > Linux' 카테고리의 다른 글
[Docker] Run Mysql Server container and setup (0) | 2018.11.15 |
---|---|
Json curl and a/b benchmark (0) | 2018.11.13 |
특정 파일 검색해서 해당 파일내에 특정 문구 추가하기 (0) | 2018.05.16 |
Install NVIDIA Graphic driver on fedora linux (0) | 2018.05.04 |
Generate public key for Open ssl (0) | 2018.03.14 |