守护(Daemon)进程是linux中的一种重要的系统管理手段,一般名称都以d结尾,运行在系统的后台,完成一些监控或者服务的工作。在Python中也是可以实现这样的功能,不过现在好像也有外部库支持了,其实也不难。
阅读全文signal是进程间通信与异步处理的一种手段,当遇到并发性编程或者系统级的控制时,就需要我们能够控制程序的信号处理进程,完成一些额外的工作。
稍微看了一下signal模块的官方文档,从使用上来说还是相当简单的。
阅读全文Python的数据持久化方式有很多种,比较好用又相对轻量级的就属JSON与Pickle这2种了。其实两者的使用方式非常相近,这里记录下来备忘。
JSON
python中处理JSON的库就是json模块,需要用到的方法大致就是以下4个,其实它们的参数有很多这里暂且省略。
1 | import json |
最近装了个open suse各种折腾,果然不管是在使用人数还是支持上都不如ubuntu或者fedora这些火热的发行版啊,有点坑,自带的libreoffice有个非常蛋疼的问题,之前我用它改了一个pptx文件,保存,然后再打开发现啥都没了,醉了……
于是就打算装WPS Office,据说兼容ms office兼容得不错。
阅读全文上一篇文章介绍了线程内的并发——协程,但有的时候协程也不能解决所有的问题,因为Python自己启用了GIL(全局解释锁,具体是什么还没研究),所以不能发挥多核处理器的优势。所以我想到在进程级别再并发一次好了。
multiprocessing这个库提供了对于多进程的支持,主要就是使用其中的Pool进程池技术。
阅读全文之前一直没有仔细研究过python的并发方案,实习的时候终于有了这样的需求。
Gevent是Python中coroutine协程的一种实现,基于Greenlet。之前我只是听说过其在性能优化上简单而有效,正好最近有并发需要,所以就稍微用了一下。
确实是非常简单,其中的monkey库可以直接patch系统的多进程、多线程还有socket的实现,具体的调用方法就是monkey.patch_xxx(),xxx可以是socket,ssl,os,subprocess,thread等。还可以直接调用monkey.patch_all()执行所有的patch。
gevent的好处在于可以自动切换协程,一般来说I/O操作比较耗时,那么当一个协程在等待I/O时,它会自动切换到其他协程工作,这样就能够充分利用CPU了。
阅读全文Level 5
1 |
|
典型的buffer overflow,而且没有任何的保护措施,直接在栈上执行shellcode就可以了。
在拿到shell之前需要先进行setreuid提权,写出shellcode。
阅读全文