cli_set_process_title

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

cli_set_process_titleGeçerli sürece başlık tanımlar

Açıklama

cli_set_process_title(string $başlık): bool

top ve ps gibi araçlarda görünen süreç başlığını tanımlar. Bu işlev sadece CLI kipinde kullanılabilir.

Değiştirgeler

başlık

Yeni başlık.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Hatalar/İstisnalar

İşletim sistemi desteklenmiyorsa bir E_WARNING üretilir.

Örnekler

Örnek 1 - cli_set_process_title() örneği

<?php
$title 
"Harika PHP Betiğim";
$pid getmypid(); // süreç başlığını ps çıktısında bulmak için

if (!cli_set_process_title($title)) {
    echo 
"$pid için süreç başlığı atanamadı...\n";
    exit(
1);
} else {
    echo 
"$pid kimlikli süreç için başlık olarak '$title' tanımlandı!\n";
    
sleep(5);
}
?>

Betik çıktısı:

6454 kimlikli süreç için başlık olarak 'Harika PHP Betiğim' tanımlandı!

ps çıktısı:

6454 pts/8    S+     0:00 Harika PHP Betiğim

Ayrıca Bakınız

add a note

User Contributed Notes 5 notes

up
13
code at edoceo dot com
8 years ago
Setting proc title on PHP based daemons is pretty sweet.
up
1
Aurelien Marchand
2 years ago
Please note that the function might be inconsistent depending on your system.

On 2 of my systems (CentOS 7.7 and Linux Mint 18.3), setting the title will work for ps but not for top.

<?php
cli_set_process_title
("sleeping-daemon");
sleep(100);

/*
*ps* returns
25072 pts/2  S  0:00   sleeping-daemon

*top*  returns
25072 aurelien  20   0  285848  23256  16856 S   0.0  0.3   0:00.01 php

*/
up
1
aaron dot mason+php at thats-too-much dot info
5 years ago
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.
up
2
pitpat
1 year ago
In Linux this command changes the title for commands like 'ps -a' it doesn't seem to work with 'top' or 'pkill'

To change the short name (eg PHP) to something else you can use the below:

<?php

$strNewName
='myscript';

cli_set_process_name($strNewName);
cli_set_process_title($strNewName);

var_dump(cli_get_process_name());
var_dump(cli_get_process_title());

function
cli_set_process_name($strName)
{
  
file_put_contents("/proc/".getmypid()."/comm",$strName);
}

function
cli_get_process_name()
{
  return(
trim(file_get_contents("/proc/".getmypid()."/comm"),"\r\n"));
}

Note: The above will NOT work in Windows and may not work in all flavours of linux (I use Debian).
up
0
martin dot kratochvil at altnet dot cz
6 months ago
cli_set_process_title() change name only for some process manager in linux. In fact this function change value appear in /proc/self/cmdline and not value in /proc/self/comm. This value in comm file is used as name in #ps or #pstree and other process manager.

For changing proccess name completly in linux you could add after cli_set_process_title() this code:

$f = fopen('/proc/self/comm','w');
if ($f) { fwrite($f, 'my-new-app-name'); fclose($f);
To Top