본문 바로가기
IT/web

[PHP] top 또는 ps 에 보이는 php 프로세스명 변경 방법

by 어느해겨울 2022. 1. 5.

 

top 또는 ps 에 보이는 php 프로세스명 변경 방법

- cli_set_process_title()

리눅스 환경에서 top 또는 ps 시 현재 실행 중인 프로세스 목록을 확인 할 수 있다.

그 중에 php로 실행된 파일들의 이름은 [php /.../exec.php] 처럼 php 가  어떤 파일을 실행시켰다. 라고 명세가 되어 이게 어떤 프로세스인지 구분하거나 프로세스명으로 제어하는 명령어를 사용하기 어렵다.

그래서 cli_set_process_title()을 사용하여 프로세스명을 변경하여 사용한다.

 

함수 정의

- top 및 ps 에서 보이는 프로세스의 이름을 변경한다. CLI에서만 동작한다.

cli_set_process_title(string $title): bool

 

예제 코드 : 프로세스명 변경 미적용

- 대상 : title.php

<?php
	// filename : title.php
    
    while( true ) {
        sleep(1);
        echo "sleep...";
    }
?>

 - 결과 : php ./test.php 로 실행된 프로세스를 확인할 수 있다.

muabow@muabow-WorkSpace:~$ ps -ef | grep php
root      1350     1  0  2021 ?        00:01:32 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
www-data  1353  1350  0  2021 ?        00:00:00 php-fpm: pool www
www-data  1354  1350  0  2021 ?        00:00:00 php-fpm: pool www
muabow   18994 17677  0 08:49 pts/7    00:00:00 php ./title.php
muabow   18998 12291  0 08:49 pts/6    00:00:00 grep --color=auto php

 

예제 코드 : 프로세스명 변경 적용

cli_set_process_title()을 사용하여  sleep_echo 라는 프로세스명 지정

- 대상 : title.php

<?php
    cli_set_process_title("sleep_echo");

    while( true ) {
        sleep(1);
        echo "sleep...";
    }
?>

- 결과 : php 로 검색결과 찾을 수 없고, sleep_echo 로 검색 시 프로세스명이 변경된 것을 확인할 수 있다.

muabow@muabow-WorkSpace:~$ ps -ef | grep php
root      1350     1  0  2021 ?        00:01:32 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
www-data  1353  1350  0  2021 ?        00:00:00 php-fpm: pool www
www-data  1354  1350  0  2021 ?        00:00:00 php-fpm: pool www
muabow   19065 12291  0 08:57 pts/6    00:00:00 grep --color=auto php
muabow@muabow-WorkSpace:~$
muabow@muabow-WorkSpace:~$ ps -ef | grep sleep_echo
muabow   19044 17677  0 08:57 pts/7    00:00:00 sleep_echo
muabow   19067 12291  0 08:57 pts/6    00:00:00 grep --color=auto sleep_echo
muabow@muabow-WorkSpace:~$

 

https://www.php.net/manual/en/function.cli-set-process-title.php

 

PHP: cli_set_process_title - Manual

In Windows, this function will set the Command Prompt window title, which is restored to the previous setting once the script finishes.  If you need to do this in 5.5.X and below, you'll need to use system() to run the title command.

www.php.net

 

끝.

 

 

댓글