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 ......
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 ......
µ±Á½Ì¨LINUXÖ÷»úÖ®¼äÒª»¥´«Îļþʱ¿ÉʹÓÃSCPÃüÁîÀ´ÊµÏÖ
¸´ÖÆÎļþ£º
£¨1£©½«±¾µØÎļþ¿½±´µ½Ô¶³Ì
scp ÎļþÃû --Óû§Ãû@¼ÆËã»úIP»òÕß¼ÆËã»úÃû³Æ:Ô¶³Ì·¾¶
£¨2£©´ÓÔ¶³Ì½«Îļþ¿½»Ø±¾µØ
scp --Óû§Ãû@¼ÆËã»úIP»òÕß¼ÆËã»úÃû³Æ:ÎļþÃû ±¾µØÂ·¾¶
¸´ÖÆÄ¿Â¼£º
£¨1£©½«±¾µØÄ¿Â¼¿½±´µ½Ô¶³Ì
scp -r Ŀ¼Ãû Óû§Ãû@¼ÆËã»úIP»òÕß¼ÆËã»úÃû³Æ:Ô¶³Ì·¾¶
£¨2£©´ÓÔ¶³Ì½«Ä¿Â¼¿½»Ø±¾µØ
scp -r Óû§Ãû@¼ÆËã»úIP»òÕß¼ÆËã»úÃû³Æ:Ŀ¼Ãû ±¾µØÂ·¾¶
¾ÙÀý˵Ã÷£º
£¨1£©°Ñ¼ÆËã»úÃûΪ“v111.nn”ÏÂËùÓеĶ«Î÷¶¼¿½±´µ½±¾»ú/home/admin/Ŀ¼ÏÂ:
scp -r * v111.nn:/home/admin/
£¨2£©ÒÔadminµÄÉí·Ý°ÑIPµØÖ·Îª“192.168.219.125”£¬/home/admin/testĿ¼ÏÂËùÓеĶ«Î÷¶¼¿½±´µ½±¾»ú/home/admin/Ŀ¼ÏÂ:
scp -r admin@192.168.219.125:/home/admin/test /home/admin/
......
ÎÒÕâÀï˵µÄioctlº¯ÊýÊÇÔÚÇý¶¯³ÌʽÀïµÄ£¬ÒòΪÎÒ²»ÖªµÀ¸üÓÐûÓбðµÄ³¡ºÏÓõ½ÁËioctl£¬
ËùÒԾ͹涨ÁËÎÒÃÇÌÖÂ۵ķ¶Î§¡£ÎªÊ²Ã´ÒªÐ´ÆªÎÄÕÂÄØ£¬ÊÇÒòΪÎÒǰһÕó×Ó±»ioctl¸ø¸ã»ì
ÁË£¬Õ⼸Ìì²ÅŪÃ÷°×Ëû£¬ÓÚÊÇÔÚÕâÀïÇåÀíÒ»ÏÂÍ·ÄÔ¡£
Ò»¡¢ ʲôÊÇioctl¡£
ioctlÊÇÉ豸Çý¶¯³ÌʽÖжÔÉ豸µÄI/OͨµÀ½øÐйÜÀíµÄº¯Êý¡£Ëùν¶ÔI/OͨµÀ½øÐйÜÀí£¬¾Í
ÊǶÔÉ豸µÄÒ»Ð©ÌØÐÔ½øÐпØÖÆ£¬ÀýÈç´®¿ÚµÄ´«Êä²¨ÌØÂÊ¡¢Âí´ïµÄתËٵȵȡ£ËûµÄµ÷ÓøöÊý
ÈçÏ£º
int ioctl(int fd, ind cmd, …)£»
ÆäÖÐfd¾ÍÊÇÓû§³Ìʽ´ò¿ªÉ豸ʱʹÓÃopenº¯Êý·µ»ØµÄÎļþ±êʾ·û£¬cmd¾ÍÊÇÓû§³Ìʽ¶ÔÉè
±¸µÄ¿ØÖÆÃüÁÖÁÓÚºóÃæµÄÊ¡ÂԺţ¬ÄÇÊÇһЩ²¹³ä²ÎÊý£¬Ò»°ã×î¶àÒ»¸ö£¬ÓлòûÓÐÊǺÍ
cmdµÄÒâÒåÏà¹ØµÄ¡£
ioctlº¯ÊýÊÇÎļþ½á¹¹ÖеÄÒ»¸öÊôÐÔ·ÖÁ¿£¬¾ÍÊÇ˵Èç¹ûÄãµÄÇý¶¯³ÌʽÌṩÁ˶Ôioct ......
×î½üÔÚά»¤ÂÛ̳£¬ÂÛ̳µÄ¹¹½¨ÊÇlinux nginx+php5.3+mysql5.1¡£×î½üÒ»¶Îʱ¼äÀÏÊdzöÏÖÎÊÌ⣬¸Õ¿ªÊ¼ÓÉÓÚphp°æ±¾ÒÔ¼°ÉèÖõÄÎÊÌ⻹ÓÐÒÔǰÀϰ汾ÁôϵÄÎÊÌ⣬ʹµÃÂÛ̳Àϱ»¹ÒÂí£¬ÕÒÁËÒ»¸öÐÇÆÚµÄÎÊÌ⣬¸÷´¦¶¼²¹Â©ÁËһϵģ¡phpÒ²Éý¼¶ÁËһϣ¡
¸ÕÉý¼¶Í꣬¸÷ÖÖÎÊÌâ¾ÍÀ´ÁË£¬ÂÛ̳ÉÏ´«²» ÁËͼƬ£¬ÂÛ̳ºǫ́´úÂëÒç³ö£¬ÂÛ̳http500´íÎó¡£Ò»´ó¶ÑÎÊÌâÈÃÈËÍ·Í´¡£¾¹ý¼¸ÌìµÄÑо¿£¬ÔÚ*NIX½«TCP/IPÒ²×÷ΪÎļþÀ´·ÃÎÊ£¬¶øÒ»°ãϵͳĬÈϵķÃÎÊÎļþÊýÊÇ1024¡£Èç¹ûÊÇÔÚÔËÓª¼¶±ð·þÎñÆ÷ÉÏÃæ¾ÍÐèÒªµ÷ÕûϵͳµÄ×î´ó·ÃÎÊÎļþÊýÀ´Ìá¸ßÍøÂç²¢·¢ÐÔÄÜ¡£´ËÔÒòÀÏÊǵ¼ÖÂhttp500ÄÚ²¿·þÎñÆ÷´íÎó£¬ÐÞ¸ÄһϷÃÎÊÎļþÊý¡£µ÷Õû·½·¨¾ÍÊÇulimitÃüÁ±ÈÈçulimit -SHn 65535¡£
ÏÂÃæÊÇulimitÉèÖõIJÎÊýÓëÏà¹ØµÄ×¢ÒâÊÂÏî
ulimit ²ÎÊý½éÉÜ:
-H ÉèÖÃÓ²¼þ×ÊÔ´ÏÞÖÆ.
-S ÉèÖÃÈí¼þ×ÊÔ´ÏÞÖÆ.
-a ÏÔʾµ±Ç°ËùÓеÄ×ÊÔ´ÏÞÖÆ.
-c size:ÉèÖÃcoreÎļþµÄ×î´óÖµ.µ¥Î»:blocks
-d size:ÉèÖÃÊý¾Ý¶ÎµÄ×î´óÖµ.µ¥Î»:kbytes
-f size:ÉèÖô´½¨ÎļþµÄ×î´óÖµ.µ¥Î»:blocks
-l size:ÉèÖÃÔÚÄÚ´æÖÐËø¶¨½ø³ÌµÄ×î´óÖµ.µ ......
Ò» ÈýÖÖÀàÐ͵ÄÌ×½Ó×Ö£º
1.Á÷ʽÌ×½Ó×Ö£¨SOCKET_STREAM)
Ìá¹©ÃæÏòÁ¬½ÓµÄ¿É¿¿µÄÊý¾Ý´«Êä·þÎñ¡£Êý¾Ý±»¿´×÷ÊÇ×Ö½ÚÁ÷£¬ÎÞ³¤¶ÈÏÞÖÆ¡£ÀýÈçFTPÐÒé¾Í²ÉÓÃÕâÖÖ¡£
2.Êý¾Ý±¨Ê½Ì×½Ó×Ö£¨SOCKET_DGRAM£©
ÌṩÎÞÁ¬½ÓµÄÊý¾Ý´«Êä·þÎñ£¬²»±£Ö¤¿É¿¿ÐÔ¡£
3.ÔʼʽÌ×½Ó×Ö£¨SOCKET_RAW£©
¸Ã½Ó¿ÚÔÊÐí¶Ô½ÏµÍ²ã´ÎÐÒ飬ÈçIP£¬ICMPÖ±½Ó·ÃÎÊ¡£
¶þ »ù±¾Ì×½Ó×Öϵͳµ÷ÓÐÓÐÈçÏÂһЩ£º
´´½¨Ì×½Ó×Ö£º socket£¨£©
°ó¶¨±¾»ú¶Ë¿Ú£º bind£¨£©
½¨Á¢Á¬½Ó£º connect£¨£©£¬accept£¨£©
ÕìÌý¶Ë¿Ú£º listen£¨£©
Êý¾Ý´«Ê䣺 send£¨£©£¬ recv£¨£©
ÊäÈë/Êä³ö¶à·¸´Ó㺠select£¨£©
¹Ø±ÕÌ×½ÓÖ»£º closesocket£¨£©
Èý Êý¾ÝÀàÐÍ
struct sockaddr
{
unsigned short sa_family; //µØÖ·×壬 Ò»°ãΪAF_INET
char ......
1. Download all packet and patchs Done
2. To be involved in the mail list
3. Check Host Requirements Done
»¹Ñ§Ï°ÁË cut ÏÔʾijÐеÄÖ¸¶¨field £¬head ÏÔʾǰ¼¸ÐУ¬readlink ÏÔʾÈíÁ¬½ÓµÄtargetÎļþ
ls /dev &>/dev/null ¾¡È»¿ÉÒ԰ѱê×¼Êä³öºÍ±ê×¼´íÎó¶¼¶¨Ïòµ½/dev/null
ÎÒº¹
4. Introduction ......