无法使用 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 构建一个简单的守护程序脚本,我想设置进程标题以在 ps
和 top
输出中看到它。此代码是:
#!/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。
我已经尝试 chmod
ing 进程(或更准确地说是通过 php file.php
执行的文件),chown
ing 另一个组的 GID 以及 运行使用 sudo
设置脚本。即使 php 进程由属于 admin 组的授权用户 运行 进行,所有这些选项对我来说都失败了。
我的猜测:出于安全原因,Apple 一定会阻止此功能......我想我可以想象为什么。
最后,因为我的目标是 Linux 运行 时间,所以我重构了我的代码,以便 cli_set_process_title()
不是关键任务,运行 命令错误抑制运算符 @cli_set_proc_title()
并且刚刚记录了命令失败的事实。
我欢迎更完整的答案或其他安全的解决方法,但在浪费了很多时间之后,这是我能想到的最好的答案,但我找不到任何其他答案。
希望对您有所帮助。
我正在尝试使用 PHP 构建一个简单的守护程序脚本,我想设置进程标题以在 ps
和 top
输出中看到它。此代码是:
#!/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。
我已经尝试 chmod
ing 进程(或更准确地说是通过 php file.php
执行的文件),chown
ing 另一个组的 GID 以及 运行使用 sudo
设置脚本。即使 php 进程由属于 admin 组的授权用户 运行 进行,所有这些选项对我来说都失败了。
我的猜测:出于安全原因,Apple 一定会阻止此功能......我想我可以想象为什么。
最后,因为我的目标是 Linux 运行 时间,所以我重构了我的代码,以便 cli_set_process_title()
不是关键任务,运行 命令错误抑制运算符 @cli_set_proc_title()
并且刚刚记录了命令失败的事实。
我欢迎更完整的答案或其他安全的解决方法,但在浪费了很多时间之后,这是我能想到的最好的答案,但我找不到任何其他答案。
希望对您有所帮助。