月度归档:2011年11月

用alarm信号处理阻塞socket的超时

以前在使用阻塞(blocked)socket的connect,send,recv函数的时候,通常都使用settimeout来设置超时。
如下,

#!/usr/bin/env python

import socket
import time

fd = socket.socket()

try:
    print "connect", time.ctime()
    fd.settimeout(5)
    fd.connect(("twitter.com", 22))
except:
    print "timeout", time.ctime()
finally:
    fd.settimeout(0)

继续阅读

创建一个最简单的Linux随机启动服务

网上有不少关于如何让Linux自动运行自己编写的脚本或者程序的方法,但是大多数都是把命令写到/etc/rc.d/rc.local或者/etc/rc.local里,这样虽然能够实现随机运行,但是并不够灵活。不能像mysql,apache等服务一样能够使用service命令或者调用init.d下的脚本启动、关闭或者重启进程。例如,

service mysql restart
service apache2 stop

或者

/etc/init.d/mysql restart
/etc/init.d/apache2 stop

因为不同的Linux发行版本,对后台服务的处理方式不大一样,所以下面以Ubuntu系统为例,看看如何写一个简单的随机启动服务。
继续阅读

用UNetBootin制作CentOS的USB安装盘

据说有人愿意赞助我300多元去制作一个校园的Linux服务器,这个价钱,就够一台二手主机,凑着用就好!
周二下午去岗顶看一下二手货,顺便在我的U盘上放一个CentOS安装文件,这样可以在店家那里测试一下USB安装系统。

经历多番波折,终于制作好了CentOS的USB安装盘。我用的是CentOS6.0的Minimal版本的iso安装文件,写入U盘使用UNetBootin这个工具。
具体步骤如下:

1、安装UNetBootin

root@xiaoxia-pc:~# apt-get install unetbootin

继续阅读