首页 » Golang

wsterm – 通过websocket执行linux命令

这两天写了一个小工具wsterm,通过websocket执行命令,挺满意,这样可以通过websocket实现各种web端的自动化管理。
写的过程中间主要有两个问题,一是进程杀不干净,父进程强行终止后,子进程不被杀或者sudo的子进程也不能直接kill,想到expect的实现很强,一直杀得很干净,猜测用的是pty,随用expect进行进程管理。
但用了expect后出现了另一个问题,所有的输出都是stdout,于是套了一层重定向所有输出到FIFO,这样直要从FIFO中读输出就可以区分stdout与stderr...

使用Go语言代替node.js实践

  使用Go语言到生产环境已有半年,其优秀的性能,内存管理及便利的Goroutine让人爱不释手。Go在语法上比较保守严谨,因此代码的正确性有很大的提升,但也使得其代码量上远远多于nodejs+CoffeeScript组合。
  之所以使用Go语言,直接原因是node.js在一个日1亿多次ajax请求同时1万websocket长连接的HTTPS服务端在内存上有类似泄漏的表现。debug发现是在启用SSL后,废弃数组中大量faye-websocket对象积压,究其原因,可能是使用不当,也可能是应用设计上的缺陷...