发布时间:2012-12-28 17:21:30
当有多个子进程的SIGCHLD信号到达父进程的时候,如果父进程用wait等待,那么父进程在处理第一个达到的SIGCHLD信号的时候,其他的SIGCHLD信号被堵塞,而且信号不被缓存,这样就会导致信号丢失,这样会产生很多的僵尸进程。。解决办法是父进程用waitpid来等待子进程信号。。。正好看到有人问这样一个问题看unix网络编程第一卷的时候,碰到书上这样一个例子: 一个并发服务器, 每一个客户端连接服务器就fork一个子进程.书上讲到当同时有n多个客户端断开连接时, 服务器端同时有n多个子进程终止, 这时候内核同时向父进程发送n多个sigchld信号.它的sigchld信号处理 函数如下......【阅读全文】
发布时间:2012-12-28 15:33:12
近日,程序开发用到了第一个第三方库,我自己的程序在main里,直接fork了一个子进程,父进程退出,发现fork出来的进程无法正常工作,如果不fork一切正常。经过研究第三方的代码,发现在第三方库里定义了一个全局变量,这个全局变量的初始化,启动了一个线程。现在问题就比较明确了。是我的程序在fork之前,主进程就有了其他的线程,主进程退出之后,线程即停止执行,造成子进程执行异常。示例代码如下: 点击(此处)折叠或打开#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <stri......【阅读全文】
发布时间:2012-12-26 13:59:52
Where 是一个约束声明,使用Where约束来自数据库的数据,Where是在结果返回之前起作用的,Where中不能使用聚合函数。Having是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在Having中可以使用聚合函数。在查询过程中聚合语句(sum,min,max,avg,count)要比having子句优先执行。而where子句在查询过程中执行优先级高于聚合语句。下面用一个例子进一步说明问题。假设有数据表:CREATE TABLE `test`.`salary_info` (  ......【阅读全文】
发布时间:2012-12-22 18:45:19
Linux TCP 连接数修改 一、 文件数限制修改(1) vi /etc/security/limits.conf* soft nofile 10240 * hard nofile 10240 (2) vi /etc/pam.d/loginsession required /lib/security/pam_limits.so 二、 网络端口限制修改(1) vi /etc/rc.d/rc.local/sbin/modprobe ip_conntrack # 加载 ip_contrack 模块# /sbin/sysctl –p ......【阅读全文】
发布时间:2012-12-13 22:12:21
1:加载光驱里的文件 mount -t iso9660 /dev/cdrom /mnt2:远程拷贝令一台linux下的文件到本地 scp root@192.168.28.1:/tmp/aaa /tmp/3:将本地的文件远程拷贝到其他linux中 scp /tmp/aaa root@192.168.28.1:/tmp4:远程连接令一台linux ssh root@192.168.28.15:加载window下的共享文件 mount -t cifs -o username=xxx //192.168.2......【阅读全文】