使用独立PID namespace防止误杀进程】的更多相关文章

一段错误的代码 首先看一段错误的代码: #!/bin/bash SLICE=100; slppid=1; pidfile=/var/run/vpnrulematch.pid # 停止之前的sleep kill_prev() { pid=$1; /bin/kill -0 $pid;exist=$? ppid=$(/bin/cat /proc/$pid/status|/usr/bin/awk -F ' ' '/PPid/{print $2}'); if [ "$exist" == 0 ]…
在那篇< 使用独立PID namespace防止误杀进程>中的最后,我碰到了一个难题,那就是父PID namespace中的进程无法使用进入子PID namespace中通过echo $$ >$pidfile写入的pid值,进程发信号时,目标pid是和自己处于同样的PID namespace的.当时我的方法是使用ps+grep的方式去寻找,然而如果遇到多个同名进程的时候,这一招也将碰壁.那么有没有别的办法呢?在我这,这类问题是我最想碰到的啦,哈哈.         还记得进入子PID n…
认识Namespace namespace 是 Linux 内核用来隔离内核资源的方式.通过 namespace 可以让一些进程只能看到与自己相关的一部分资源,而另外一些进程也只能看到与它们自己相关的资源,这两拨进程根本就感觉不到对方的存在.linux 内核提供的 namespace 技术为 docker 等容器技术的出现和发展提供了基础条件. Linux 现有的namespace 有7种: namespace 宏 隔离内容 Cgroup CLONE_NEWCGROUP Cgroup root…
最近因为工作需要,研究了一下桌面应用程序.在winform.WPF.Electron等几种技术里,最终选择了WPF作为最后的选型.WPF最吸引我的地方,就是MVVM模式了.MVVM模式完全把界面和业务剥离开来,页面所有操作都通过数据来驱动.更替页面不用修改业务代码逻辑. 以一个查杀进程的小工具来作为初次学习的成果总结.日常开发Java Web程序的时候,进程遇到端口占用问题,通过命令查找端口.查找进程.杀死进程,这一套命令敲下来过于麻烦.于是就写了这么一个小Demo,即作为学习使用,也为以后工作…
shell 执行查找进程,然后查杀进程脚本如下: ps -ef | grep 'IOE' |grep -v 'grep'| awk '{print \$2}' |while read pid; do kill -9 \$pid; done 相关命令详解: ps命令讲解:http://www.cnblogs.com/wangcp-2014/p/5146315.html grep命令讲解:http://www.cnblogs.com/wangcp-2014/p/5146335.html awk命令讲…
本文系转载,转载原文地址:http://blog.sina.com.cn/s/blog_637112040100vl53.html 1.查进程   ps命令查找与进程相关的PID号:   ps a 显示现行终端机下的所有程序,包括其他用户的程序.    ps -A 显示所有程序.    ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示.    ps -e 此参数的效果和指定"A"参数相同.    ps e 列出程序时,显示每个程序所使用的环境变量. …
在windows有时使用任务管理器杀进程,一直杀不掉: 这个时候,可以使用命令行: 先使用tasklist 命令查看当前系统中的进程列表,然后针对你要杀的进程使用taskkill命令 如要杀nginx.exe进程,命令如下:taskkill /im nginx.exe /f NOTE: /f在这里意为强制结束进程 也可以使用pid杀: taskkill /pid {pid} 您可以运行taskkill /?来获取更多更多有关taskkill的信息.…
一.查看进程 Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux.这两个到底有什么区别呢? 两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格,System V风格和BSD 风格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者输出略有不同. 现在的大部分Linux系统都是可以同时使用这两种方式的. 1.ps aux |grep java 2.ps -ef | grep java 二.杀进程 kill -s…
查看 443端口占用 netstat -ano | findstr "443" ,得到如下信息: TCP [::]:443 [::]:0 LISTENING 2320 发现是被2320进程给占用了.下面查看进程是什么. tasklist|findstr "2320" 如果是某个软件,例如qq旋风下载.那么,关闭这个软件,或者直接杀进程 杀进程:taskkill /F /pid 2320 /F 表示强制杀掉.…
笔者在项目中遇到过需要根据进程名杀进程的需求,利用python库psutil实现了此功能. 模块地址: https://pypi.python.org/pypi/psutil/   psutil功能 提供接口可以用来获取信息,包括: 当前运行的进程 系统(资源使用)信息 CPU 内存 磁盘 网络 用户   相应的用法可以看其提供的接口,便一目了然 以下是一个根据进程名,杀掉进程的例子,支持windows和linux平台 def kill_process_with_name(process_nam…