无法使用 cli_set_process_title() OS X 在 PHP 命令行脚本中设置进程标题?

Cannot set process title in a PHP command line script using cli_set_process_title() OS X?

我正在尝试使用 PHP 构建一个简单的守护程序脚本,我想设置进程标题以在 pstop 输出中看到它。此代码是:

#!/usr/bin/php
<?php
// Daemonize
cli_set_process_title('daemonized');
$pid = pcntl_fork(); // parent gets the child PID, child gets 0
if($pid){ // 0 is false in PHP
    // Only the parent will know the PID. Kids aren't self-aware
    // Parent says goodbye!
    print "Parent : " . getmypid() . " exiting\n";
    exit();
}
print "Child : " . getmypid() . "\n";
    while (true) {
        // daemon stuff...
        sleep(2);
    }

但是我无法设置标题,当我启动脚本时收到以下警告:

$ ./daemonize.php
PHP Warning:  cli_set_process_title(): cli_set_process_title had an error: Not initialized correctly in /Applications/MAMP/htdocs/daemonize.php on line 3

Warning: cli_set_process_title(): cli_set_process_title had an error: Not initialized correctly in /Applications/MAMP/htdocs/daemonize.php on line 3

问题出在哪里,我应该怎么做才能让它起作用?

感谢关注!

这不是真正的答案,本身,但我不确定您是否仍然可以在 OS 中使用 cli-php 来做到这一点X 10.10.x 没有 运行 将进程作为超级用户或其他不太安全的 hack。

我已经尝试 chmoding 进程(或更准确地说是通过 php file.php 执行的文件),chowning 另一个组的 GID 以及 运行使用 sudo 设置脚本。即使 php 进程由属于 admin 组的授权用户 运行 进行,所有这些选项对我来说都失败了。

我的猜测:出于安全原因,Apple 一定会阻止此功能......我想我可以想象为什么。

最后,因为我的目标是 Linux 运行 时间,所以我重构了我的代码,以便 cli_set_process_title() 不是关键任务,运行 命令错误抑制运算符 @cli_set_proc_title() 并且刚刚记录了命令失败的事实。

我欢迎更完整的答案或其他安全的解决方法,但在浪费了很多时间之后,这是我能想到的最好的答案,但我找不到任何其他答案。

希望对您有所帮助。