最近一直在学习mysql,把其他事情给耽搁了!
重点记一下怎么用telnet来测试网页的一些性质,虽然现在用firebug,curl,wget等等简单易用的工具来测试网页是否被压缩和是否被缓存!但有时还是不能避免的使用telnet这样原始的工具来做一些简单的测试!
其实如果了解rfc2616协议,也就是http协议的话,使用起来就不陌生了!
可是像我们这些习惯使用工具的人来讲,有时候不免会忘记!在这里记一下,毕竟我google了1好一阵也没找到!
先ping 下www.douban.com ip为59.151.41.69 80 (为什么不测试sina,163呢?他们前端有专业的防火墙等设备,直接telnet 上去似乎有问题)
telnet 59.151.41.69 80
Connected to 59.151.41.69 (59.151.41.69).
Escape character is '^]'.
GET / HTTP/1.1
Host: www.douban.com
两下回车就可以返回我们需要的内容! GET 后面的地址一般是index.html 或者index.php等等,可douban的不晓得默认页面用的萨,所以就直接GET /了。
抓douban的头的时候意外的发现X-Mem-Hit by mem-cache-etag,google了下,发现是lighttpd的一个小插件。
用telnet基本的读取网页的能力有了,我们在近一步读取压缩过后的网页
在Host: www.doban.com回车后
继续键入Accept-Encoding: compress, gzip 并两下回车,我们就能得到天书(压缩过后的html)。
累了,其他的更过参数可以从http协议中找到!
这样用telnet,就能更好的去了解协议本身了。
2007年9月20日星期四
今天终于遇到kill -9杀不掉的进程
以前只在论坛上看到有人用kill -9 $pid 也杀不掉进程,今天终于被我遇到了。
过程是这样的:
一大早来公司,突然收到系统报警mail,一台2U的hp的服务器负载60,上系统一看!httpd死进程过多! 用apachectl stop想杀掉进程再重起,杀了几次说pid已经不存在,可是apachectl start的时候 报启动错误,80端口被暂用! ps axu|grep httpd发现还是有进程存在!killall httpd 发现无济于事。
随手写个脚本想杀掉进程
for i in ` ps aux|awk '{ print $2 }`
do
echo "pid is $i"
kill -9 $i
done
运行后发现进程还是有,一个都杀不掉!
找了个杀不掉的pid,发现 kill -9 $pid 还真是对这个进程没有任何办法!
最后只有reboot了,系统重启后恢复正常!
实在弄不出个所以然,google了下,有如下解释:
a、该进程处于"Zombie"状态(使用ps命令返回defunct的进程)。此时进程已经释放所有资源,但还未得到其父进程的确认。"Zombie"进程要等到下次重启时才会消失,但它的存在不会影响系统性能。
b、该进程处于"kernel mode"(核心态)且在等待不可获得的资源。处于核心态的进程忽略所有信号处理,因此对于这些一直处于核心态的进程只能通过重启系统实现。进程在AIX 中会处于两种状态,即用户态和核心态。只有处于用户态的进程才可以用“kill”命令将其终止。
如果上面的解释是正确的,那么我遇到的应该是第二种情况了!至于是什么东西引发的这个问题。。。。,暂时还不明了!
过程是这样的:
一大早来公司,突然收到系统报警mail,一台2U的hp的服务器负载60,上系统一看!httpd死进程过多! 用apachectl stop想杀掉进程再重起,杀了几次说pid已经不存在,可是apachectl start的时候 报启动错误,80端口被暂用! ps axu|grep httpd发现还是有进程存在!killall httpd 发现无济于事。
随手写个脚本想杀掉进程
for i in ` ps aux|awk '{ print $2 }`
do
echo "pid is $i"
kill -9 $i
done
运行后发现进程还是有,一个都杀不掉!
找了个杀不掉的pid,发现 kill -9 $pid 还真是对这个进程没有任何办法!
最后只有reboot了,系统重启后恢复正常!
实在弄不出个所以然,google了下,有如下解释:
a、该进程处于"Zombie"状态(使用ps命令返回defunct的进程)。此时进程已经释放所有资源,但还未得到其父进程的确认。"Zombie"进程要等到下次重启时才会消失,但它的存在不会影响系统性能。
b、该进程处于"kernel mode"(核心态)且在等待不可获得的资源。处于核心态的进程忽略所有信号处理,因此对于这些一直处于核心态的进程只能通过重启系统实现。进程在AIX 中会处于两种状态,即用户态和核心态。只有处于用户态的进程才可以用“kill”命令将其终止。
如果上面的解释是正确的,那么我遇到的应该是第二种情况了!至于是什么东西引发的这个问题。。。。,暂时还不明了!
订阅:
博文 (Atom)
