현재 위치: > 최신 기사 목록> laravel artisan 명령에 cli_get_process_title 함수를 기반으로 동적 프로세스 제목을 추가하는 방법?

laravel artisan 명령에 cli_get_process_title 함수를 기반으로 동적 프로세스 제목을 추가하는 방법?

M66 2025-06-27

Laravel 애플리케이션을 개발할 때는 종종 장인 명령을 사용하여 다양한 작업을 수행합니다. Artisan Command는 Laravel Framework에서 제공하는 매우 강력한 명령 줄 도구입니다. 개발자는 데이터베이스 마이그레이션, 대기열 처리, 타이밍 작업 등과 같은 많은 작업의 실행을 단순화하는 데 도움이됩니다.

그러나 장기적인 장인 명령을 실행할 때 백그라운드에서 동시에 여러 명령이 실행될 수 있습니다. 이러한 프로세스를 구별하기 위해, 특히 HTOP 또는 PS 명령과 같은 프로세스 모니터링 도구를 사용할 때 각 프로세스에 대해 쉽게 인식 할 수있는 동적 프로세스 제목을 설정할 수 있기를 원합니다. 다행히도 PHP의 CLI_GET_PROCESS_TITLE 기능을 통해이를 달성 할 수 있습니다.

이 기사에서는 Laravel Artisan 명령에 CLI_GET_PROCESS_TITLE 기능을 기반으로 동적 프로세스 제목을 추가하여 명령 줄 인터페이스에서 다른 프로세스를보다 쉽게보고 식별 할 수 있도록하는 방법을 살펴 봅니다.

1. cli_get_process_title 이란 무엇입니까?

cli_get_process_title 은 현재 PHP 프로세스의 제목을 얻는 PHP 함수입니다. 운영 체제에서 현재 프로세스의 표시 이름을 나타내는 문자열을 반환합니다. 이 제목을 수정하여 프로세스에 명령 줄 인터페이스에보다 설명적인 이름을 표시하여 프로세스를 더 잘 관리하고 모니터링 할 수 있습니다.

기본적으로 PHP 프로세스의 제목은 일반적으로 "PHP"또는 유사한 일반 식별자이지만 CLI_GET_PROCESS_TITLE을 사용하면 현재 실행중인 Laravel Artisan 명령과 같은 인식 가능한 이름으로 변경할 수 있습니다.

2. CLI_GET_PROCESS_TITLE을 사용하여 Artisan Command의 동적 프로세스 제목을 설정하십시오.

Laravel의 Artisan 명령에 대한 동적 프로세스 제목을 설정하려면 명령 실행 중에 프로세스 제목을 수정해야합니다. 간단한 단계 가이드는 다음과 같습니다.

2.1 사용자 정의 장인 명령을 만듭니다

먼저, 우리는 맞춤형 장인 명령을 만들어야합니다. 실행하여 새로운 장인 명령을 만들 수 있습니다.

 <span><span>php artisan make:</span><span><span class="hljs-built_in">command</span></span><span> SetProcessTitleCommand
</span></span>

앱/콘솔/명령 디렉토리에서 새 명령 클래스 파일 SetProcessTitleCommand.php가 생성됩니다.

2.2 명령에서 cli_set_process_title을 사용하십시오

다음으로 명령 클래스에서 cli_set_process_title 함수를 사용하여 프로세스 제목을 설정해야합니다. setProcessTitleCommand.php 파일을 열고 핸들 메소드에 코드를 추가하여 프로세스 제목을 동적으로 설정하십시오.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>

</span><span><span class="hljs-keyword">namespace</span></span><span> </span><span><span class="hljs-title class_">App</span></span><span>\</span><span><span class="hljs-title class_">Console</span></span><span>\</span><span><span class="hljs-title class_">Commands</span></span><span>;

</span><span><span class="hljs-keyword">use</span></span><span> </span><span><span class="hljs-title">Illuminate</span></span><span>\</span><span><span class="hljs-title">Console</span></span><span>\</span><span><span class="hljs-title">Command</span></span><span>;

</span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">SetProcessTitleCommand</span></span><span> </span><span><span class="hljs-keyword">extends</span></span><span> </span><span><span class="hljs-title">Command</span></span><span>
{
    </span><span><span class="hljs-comment">// 명령의 이름</span></span><span>
    </span><span><span class="hljs-keyword">protected</span></span><span> </span><span><span class="hljs-variable">$signature</span></span><span> = </span><span><span class="hljs-string">'set:process-title {title}'</span></span><span>;
    
    </span><span><span class="hljs-comment">// 명령에 대한 설명</span></span><span>
    </span><span><span class="hljs-keyword">protected</span></span><span> </span><span><span class="hljs-variable">$description</span></span><span> = </span><span><span class="hljs-string">'현재 프로세스의 제목을 설정하십시오'</span></span><span>;

    </span><span><span class="hljs-comment">// 명령을 실행하는 방법</span></span><span>
    </span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">handle</span></span><span>(</span><span><span class="hljs-params"></span></span><span>)
    {
        </span><span><span class="hljs-comment">// 명령 줄 매개 변수를 얻습니다</span></span><span>
        </span><span><span class="hljs-variable">$title</span></span><span> = </span><span><span class="hljs-variable language_">$this</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">argument</span></span><span>(</span><span><span class="hljs-string">'title'</span></span><span>);
        
        </span><span><span class="hljs-comment">// 사용cli_set_process_title프로세스 제목을 설정하십시오</span></span><span>
        </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">function_exists</span></span><span>(</span><span><span class="hljs-string">'cli_set_process_title'</span></span><span>)) {
            </span><span><span class="hljs-title function_ invoke__">cli_set_process_title</span></span><span>(</span><span><span class="hljs-variable">$title</span></span><span>);
            </span><span><span class="hljs-variable language_">$this</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">info</span></span><span>(</span><span><span class="hljs-string">"프로세스 제목이 설정되었습니다: <span class="hljs-subst">$title</span></span></span><span>");
        } </span><span><span class="hljs-keyword">else</span></span><span> {
            </span><span><span class="hljs-variable language_">$this</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">error</span></span><span>(</span><span><span class="hljs-string">'현재의PHP버전은 지원되지 않습니다cli_set_process_title기능'</span></span><span>);
        }
    }
}
</span></span>

위 코드에서는 다음을 수행했습니다.

  1. 새로운 장인 명령 세트 : 프로세스 타이틀이 생성되며, 이는 명령 줄 매개 변수 제목을 수용하며 프로세스에 대해 설정하려는 제목입니다.

  2. 핸들 메소드에서는 cli_set_process_title을 사용하여 프로세스 제목을 동적으로 설정합니다.

  3. CLI_SET_PROCESS_TITLE 기능을 사용할 수 없으면 (예 : PHP 환경 에서이 기능을 지원하지 않음), 사용자는 현재 환경이 기능을 지원하지 않음을 프롬프트합니다.

2.3 등록 명령

그런 다음이 새 명령을 앱/콘솔/kernel.php 파일에 등록해야합니다. $ commands array에서 새 명령에 대한 참조를 추가하십시오.

 <span><span><span class="hljs-keyword">protected</span></span><span> </span><span><span class="hljs-variable">$commands</span></span><span> = [
    </span><span><span class="hljs-title class_">Commands\SetProcessTitleCommand</span></span><span>::</span><span><span class="hljs-variable language_">class</span></span><span>,
];
</span></span>

2.4 명령을 실행하십시오

이제 다음 명령을 실행하여 프로세스 제목의 설정을 테스트 할 수 있습니다.

 <span><span>php artisan </span><span><span class="hljs-built_in">set</span></span><span>:process-title </span><span><span class="hljs-string">"My Custom Process Title"</span></span><span>
</span></span>

모든 것이 제대로 작동하면 시스템의 PS 명령 또는 유사한 도구를 통해 프로세스 제목을 볼 수 있습니다. 프로세스 제목이 " 내 사용자 지정 프로세스 제목 "으로 성공적으로 설정되었음을 확인할 수 있어야합니다.

3. 고급 : 장기 실행 명령으로 타이틀을 동적으로 업데이트합니다

장기 실행 명령으로 프로세스 제목을 동적으로 업데이트 해야하는 경우 명령 실행 중에 CLI_SET_PROCESS_TITLE을 주기적으로 호출 할 수 있습니다. 예를 들어, 작업 대기열을 처리 할 때 현재 처리 된 작업에 따라 프로세스 제목을 동적으로 업데이트 할 수 있습니다.

다음은 장기 실행 명령을 실행할 때 프로세스 제목을 동적으로 업데이트하는 방법을 보여주는 예입니다.

 <span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">handle</span></span><span>(</span><span><span class="hljs-params"></span></span><span>)
{
    </span><span><span class="hljs-variable">$tasks</span></span><span> = </span><span><span class="hljs-variable language_">$this</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">getTasks</span></span><span>(); </span><span><span class="hljs-comment">// 일련의 작업을 받고 있다고 가정 해 봅시다</span></span><span>
    
    </span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$tasks</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$index</span></span><span> =&gt; </span><span><span class="hljs-variable">$task</span></span><span>) {
        </span><span><span class="hljs-variable">$title</span></span><span> = </span><span><span class="hljs-string">"작업을 처리합니다 <span class="hljs-subst">$index</span></span></span><span> / " . </span><span><span class="hljs-title function_ invoke__">count</span></span><span>(</span><span><span class="hljs-variable">$tasks</span></span><span>);
        
        </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">function_exists</span></span><span>(</span><span><span class="hljs-string">'cli_set_process_title'</span></span><span>)) {
            </span><span><span class="hljs-title function_ invoke__">cli_set_process_title</span></span><span>(</span><span><span class="hljs-variable">$title</span></span><span>);
        }

        </span><span><span class="hljs-comment">// 작업을 처리합니다</span></span><span>
        </span><span><span class="hljs-variable language_">$this</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">processTask</span></span><span>(</span><span><span class="hljs-variable">$task</span></span><span>);
        
        </span><span><span class="hljs-comment">// 효과를 표시합니다,여기에서 각 작업의 처리 시간을 시뮬레이션 해 봅시다</span></span><span>
        </span><span><span class="hljs-title function_ invoke__">sleep</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>);
    }
}
</span></span>

위의 코드에서 명령은 작업 세트를 통과하고 각 작업이 처리 될 때 프로세스 제목을 동적으로 업데이트합니다. 이러한 방식으로, 현재 프로세스의 상태를 명령 줄에서 실시간으로 볼 수 있습니다.

4. 요약

cli_get_process_titlecli_set_process_title 함수를 통해 Laravel Artisan 명령에 대한 동적 프로세스 제목을 설정할 수 있습니다. 이는 명령 줄에서 여러 배경 프로세스를 실행할 때, 특히 개발 및 생산 환경에서 장기 실행 명령을 사용할 때 다양한 프로세스를 차별화하는 데 매우 도움이됩니다.

CLI_SET_PROCESS_TITLE 기능이 모든 PHP 버전에서 지원되지는 않지만 프로세스 관리 및 모니터링이 필요한 개발자에게는 매우 유용한 도구입니다. 이 기사가 Laravel 프로젝트 에서이 기능을 구현하여 작업 효율성 및 시스템 관리 경험을 향상시키는 데 도움이되기를 바랍니다.