海运的博客

此内容被密码保护

发布时间:April 8, 2015 // 分类: // No Comments

请输入密码访问

colinux网络配置使用

发布时间:April 7, 2015 // 分类: // No Comments

colinux有4种网络配置方式:
端口映射:

eth0=slirp,,tcp:2222:22

TAP虚拟网卡,支持连接共享或桥接,需要在网络连接处设置,如同时选择本地连接和虚拟网卡——右键——桥接,桥接时会断开网络连接:

eth0=tuntap,"colinux" #colinux为虚拟网卡名称

pcap和ndis桥接模式,pcap需安装winpcap软件,性能也不如ndis:

#local为本地连接网卡
eth0=pcap-bridge,"local"
eth0=ndis-bridge,"local"

Salt根据判断条件决定执行命令

发布时间:April 2, 2015 // 分类:Puppet // No Comments

如果存在特定文件就不执行,例如不存在/etc/nginx目录就安装nginx:

nginx:
  pkg:
    - name: nginx
    - installed
    - unless: test -d /etc/nginx

只有存在特定文件才执行,如存在/etc/init.d/httpd就删除httpd:

httpd:
  pkg:
    - name: httpd
    - removed
    - onlyif: test -f /etc/init.d/httpd

CentOS7进程管理

发布时间:March 29, 2015 // 分类:CentOS // No Comments

启动或停止:

systemctl stop firewalld
systemctl startfirewalld

开机启动:

systemctl enable firewalld
systemctl disable firewalld

PHP多线程pthreads使用

发布时间:March 26, 2015 // 分类:PHP // No Comments

<?php
declare(ticks = 1);
$running = 1;

//信号处理函数
function sig_handler($signo)
{
  switch ($signo) {
  case SIGINT:
    finish();
    break;
  default:
    break;
  }
}

pcntl_signal(SIGINT, "sig_handler");
class test extends \Thread {
  public $url;
  public $result;

  public function __construct($url) {
    $this->url = $url;
  }

  public function run() {
    if ($this->url) {
      $this->result = model_http_curl_get($this->url);
    }
  }
}
function model_http_curl_get($url) {
  $curl = curl_init();  
  curl_setopt($curl, CURLOPT_URL, $url);  
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);  
  curl_setopt($curl, CURLOPT_TIMEOUT, 5);  
  curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)');  
  $result = curl_exec($curl);  
  curl_close($curl);  
  return $result;  
}
for ($i = 0; $i < 500; $i++) {
  $urls[] = 'http://www.baidu.com/s?wd='. rand(10000, 20000);
}

$pool = array();
for ($i=1;$i<=5;$i++) {
  $key = uniqid();
  $url = array_shift($urls);
  $pool[$key] = new test($url);
  $pool[$key]->start();
  echo "启动线程$key\n";
}
while ($urls && $running) {
  foreach ($pool as $key=>$worker) {
    if(! $worker->isRunning()){
      //unset($pool[$key]);
      echo "线程".$key."已结束\n";
      $url = array_shift($urls);
      $pool[$key] = new test($url);
      $pool[$key]->start();
      echo "启动线程$key\n";
    }
  }
  usleep(1000);
}

function finish() {
  global $running;
  global $pool;
  $running = 0;
  echo "接收到信号,等待运行中线程结束\n";
  foreach ($pool as $key=>$worker) {
    if ($pool[$key]->join()) {
      var_dump($pool[$key]->result);
    }
  }
}
分类
最新文章
最近回复
  • opnfense: 谢谢博主!!!解决问题了!!!我之前一直以为内置的odhcp6就是唯一管理ipv6的方式
  • liyk: 这个方法获取的IPv6大概20分钟之后就会失效,默认路由先消失,然后Global IPV6再消失
  • 海运: 不好意思,没有。
  • zongboa: 您好,請問一下有immortalwrt設定guest Wi-Fi的GUI教學嗎?感謝您。
  • 海运: 恩山有很多。
  • swsend: 大佬可以分享一下固件吗,谢谢。
  • Jimmy: 方法一 nghtp3步骤需要改成如下才能编译成功: git clone https://git...
  • 海运: 地址格式和udpxy一样,udpxy和msd_lite能用这个就能用。
  • 1: 怎么用 编译后的程序在家里路由器内任意一台设备上运行就可以吗?比如笔记本电脑 m参数是笔记本的...
  • 孤狼: ups_status_set: seems that UPS [BK650M2-CH] is ...
归档