PHP后台程序对LINUX信号的处理
PHP在运行的时候,直接kill掉,有肯能造成数据的丢失。幸好php模块,有针对signal的处理。
处理方式,首先检查有没有安装 PCNTL 模块
然后可以在一个包含文件中,添加以下代码
global $exitFlag;
$exitFlag = false;
// 增加linux信号量处理
if (DIRECTORY_SEPARATOR != '\\') {
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");
pcntl_signal(SIGINT, "sig_handler");
}
// 信号处理函数
function sig_handler($signo)
{
global $exitFlag;
echo "signal handler...\n";
switch ($signo) {
case SIGTERM :
case SIGHUP :
case SIGINT :
$exitFlag = true;
break;
default :
// handle all other signals
}
}
最后一个注意点: 在你所运行的php主文件里,添加一行
declare(ticks = 1);
否则这个信号处理是不起作用的。
相关文档:
昨天我们实现了一个简单的搜索功能,今天我想了一下,其实还有可以改进的地址,如直接用Index.php代替Search.php。
修改Index.php文件,修改一下搜索表单
<!---搜索框--->
<!--这里的所有值前面加前缀“S_”以区分-->
<form id="form1" name="form1" method="get" action="Index.php">
&n ......
GyPSii利用XML-RPC,PHP里XML-RPC的相关应用示例很多,查查手册、GOOGLE一下就可以找到很多。GyPSii API里提供了一个操作类用来请求服务,并提供了一个请求函数,只要将此函数放进操作类里,就可以方便的使用了,函数如下:
function GyPSiiXMLRPC( $uri, $host, $pid, $body="" ) {
$this->addHeader( 'Content-T ......
2.1.2 是否通用
有些单片机厂家也给客户提供了大量的驱动程序,比如USB
HOST驱动程序,这可以让客户很容易就可以在它的上面编写程序读写U盘。但是客户写的这些程序,只能在这种芯片、这个驱动程序上使用;更换另一种芯片
后,即使芯片公司也提供了驱动程序,但是接口绝对不一样,客户又得重新编写应用程序。
基于操作 ......
Linux软件包,常见的格式包括有rpm,deb,tar,gz,tgz,zip,bz2等等。几乎每个linux软件都会提供tar的格式的软件包,因为这种格式的软件包任何版本的linux都支持,所以大家至少要了解tar和rpm的使用方法。至于deb可用alien工具转换成tgz或rpm方式。bz2可用bunzip2解包即可。
一、RPM文件的安装
RPM 是RedHat Package ......
由于32位操作系统下面单进程最大内存使用不能超过2G,而我们用Memcached经常需要使用更大的内存空间,所以选择64位的Linux版本是必须的,64位OS下的Memcached安装和32位OS下差不多,只有一个地方稍有不同,详见下面的红色字体部分。
我们以版本memcached-1.2.6为例,对于其他版本替换相应版本号即可;
下载地址:http://w ......