我为 mediawiki 编写了一个 php 作业处理程序。该脚本将生成 4 个 PHP 进程(Scanner 和 3 个 Worker)。
youri@pewpew:~$ ps -aux | grep php
www-data 1579 0.5 0.2 263888 12752 ? SN Feb19 38:44 php Scanner.ph
www-data 1581 0.0 0.2 263612 12656 ? SN Feb19 6:29 php Worker.php
www-data 1594 0.0 0.2 263612 12652 ? SN Feb19 6:13 php Worker.php
www-data 1597 0.0 0.2 263612 12652 ? SN Feb19 6:08 php Worker.php
youri 1961 0.0 0.0 9360 660 pts/0 R+ 11:48 0:00 grep --color=auto php
该进程通过 start.php 文件启动:
#!/usr/bin/php
<?php
require_once('config.php');
$logger->log('Starting scanner');
exec("nice -n 10 php Scanner.php > /dev/null 2>/dev/null &");
$logger->log('Starting workers');
for ($i = 0; $i < $config->getMaxRunningJobs(); $i++) {
exec("nice -n 10 php Worker.php > /dev/null 2>/dev/null &");
sleep(1);
}
$logger->log('Done');
将其添加到初始化脚本的最佳方法是什么(因为它没有停止/状态)?
答案1
我将编写一个标准的初始化脚本作为php start.php
启动函数。
至于停止功能,请执行以下操作:
kill -9 `ps -ef|grep "php Scanner.php"|awk '{ print $2 }'`
您可以将状态函数留空。