- 浏览: 1061590 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (501)
- dwr (6)
- javascript (84)
- oracle (66)
- jsp/servlet (18)
- ant (3)
- 基础知识 (12)
- EXT (10)
- My SQL (10)
- java (71)
- spring (37)
- 学习的对象 (2)
- Linux (24)
- 面试 (1)
- HTML/CSS (11)
- tomcat (11)
- 收藏夹 (2)
- Power Designer (2)
- struts.xml配置文件 (1)
- sturts2 (3)
- myeclipse (8)
- eclipse (7)
- Maven (34)
- SVN (3)
- SAP JCO (2)
- JBOSS (11)
- webservice (8)
- word (1)
- 敏捷开发 (1)
- sybase (4)
- Nexus (3)
- EhCache (3)
- log4j (3)
- Cookie (4)
- Session (4)
- CXF (7)
- AXIS (2)
- SSO (1)
- LDAP (1)
- velocity (2)
- Jquery (5)
- redis (2)
- http (4)
- dojo (1)
- Linux资源监控软件mnon的安装与运用 (1)
- notepad++ (1)
- EA (1)
- UML (1)
- JasperReports (1)
- 权限 (0)
- freemarker (4)
- Spring MVC (1)
- JMS (1)
- activeMQ (1)
- hession (3)
- 安全 (1)
- ibatis (2)
- log (1)
- nginx (1)
最新评论
-
winhbb:
我刚好遇到了一个问题(在可以依赖注入的场合有效):有两个模块A ...
解决Maven项目相互依赖/循环依赖/双向依赖的问题 -
nanjiwubing123:
long3ok 写道你好 XmlOutputFormatter ...
用XStream转换复杂XML -
zhoujianboy:
另外一个方法实现eclipse tomcat 热部署:http ...
eclipse下实现maven项目在tomcat容器热部署方法 -
long3ok:
你好 XmlOutputFormatter 请问这个类是在什么 ...
用XStream转换复杂XML -
ganbo:
总结的好,文章给力。
解决Maven项目相互依赖/循环依赖/双向依赖的问题
可能很少有人意识到,在一个进程调用了exit之后,该进程 并非马上就消失掉,而是留下一个称为僵尸进程(Zombie)的数据结构。在Linux进程的5种状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎所 有内存空间,没有任何可执行代码,也不能被调度,仅仅在进程列表中保留一个位置,记载该进程的退出状态等信息供其他进程收集,除此之外,僵尸进程不再占有 任何内存空间。
僵尸进程的来由,要追溯到Unix,Unix的设计者们设计这个东西并非是因为闲来无事想装装酷什么的。上面说到,僵尸进程中保存着很多对程序员和 系统管理员非常重要的信息,首先,这个进程是怎么死亡的?是正常退出呢,还是出现了错误,还是被其它进程强迫退出的?也就是说,这个程序的退出码是什么? 其次,这个进程占用的总系统CPU时间和总用户CPU时间分别是多少?发生页错误的数目和收到信号的数目。这些信息都被存储在僵尸进程中,试想如果没有僵 尸进程,进程执行多长我们并不知道,一旦其退出,所有与之相关的信息都立刻都从系统中清除,而如果此时父进程或系统管理员需要用到,就只好干瞪眼了。
所以,进程退出后,系统会把该进程的状态变成Zombie,然后给上一定的时间等着父进程来收集其退出信息,因为可能父进程正忙于别的事情来不及收 集,所以,使用Zombie状态表示进程退出了,正在等待父进程收集信息中。
Zombie进程不可以用kill命令清楚,因为进程已退出,如果需要清除这样的进程,那么需要清除其父进程,或是等很长的时间后被内核清除。因为 Zombie的进程还占着个进程ID号呢,这样的进程如果很多的话,不利于系统的进程调度。
下面,让我们来看看一个示例:
01 /* zombie.c */
02 #include
<sys/types.h>
03 #include
<unistd.h> main()
04 {
05 pid_t
pid;
06 pid=fork();
07 if(pid<0) { /* 如果出错 */
08 printf("error occurred!\n");
09 }else if(pid==0){ /* 如果是子进程
*/
10 exit(0);
11 }else{ /* 如果是父进程 */
12 sleep(60); /* 休眠60秒 */
13 wait(NULL); /* 收集僵尸进程 */
14 }
15 }
编译这个程序:
1 $ cc zombie.c -o zombie
后台运行程序,以使我们能够执行下一条命令
1 $ ./zombie &
2 [1] 1217
列一下系统内的进程
1 $ ps -ax
2 ... ...
3 1137 pts/0 S 0:00 -bash
4 1217 pts/0 S 0:00
./zombie
5 1218 pts/0 Z 0:00
[zombie]
6 1578 pts/0 R 0:00 ps
-ax
其中的”Z”就是僵尸进程的标志,它表示1218号进程现在就是一个僵尸进程。
收集Zombie进程的信息,并终结这些僵尸进程,需要我们在父进程中使用waitpid调用和wait调用。这两者的作用都是收集僵尸进程留下的 信息,同时使这个进程彻底消失。
【转载地址】http://blog.chinaunix.net/uid-23177306-id-2531107.html
僵尸进程的来由,要追溯到Unix,Unix的设计者们设计这个东西并非是因为闲来无事想装装酷什么的。上面说到,僵尸进程中保存着很多对程序员和 系统管理员非常重要的信息,首先,这个进程是怎么死亡的?是正常退出呢,还是出现了错误,还是被其它进程强迫退出的?也就是说,这个程序的退出码是什么? 其次,这个进程占用的总系统CPU时间和总用户CPU时间分别是多少?发生页错误的数目和收到信号的数目。这些信息都被存储在僵尸进程中,试想如果没有僵 尸进程,进程执行多长我们并不知道,一旦其退出,所有与之相关的信息都立刻都从系统中清除,而如果此时父进程或系统管理员需要用到,就只好干瞪眼了。
所以,进程退出后,系统会把该进程的状态变成Zombie,然后给上一定的时间等着父进程来收集其退出信息,因为可能父进程正忙于别的事情来不及收 集,所以,使用Zombie状态表示进程退出了,正在等待父进程收集信息中。
Zombie进程不可以用kill命令清楚,因为进程已退出,如果需要清除这样的进程,那么需要清除其父进程,或是等很长的时间后被内核清除。因为 Zombie的进程还占着个进程ID号呢,这样的进程如果很多的话,不利于系统的进程调度。
下面,让我们来看看一个示例:
01 /* zombie.c */
02 #include
<sys/types.h>
03 #include
<unistd.h> main()
04 {
05 pid_t
pid;
06 pid=fork();
07 if(pid<0) { /* 如果出错 */
08 printf("error occurred!\n");
09 }else if(pid==0){ /* 如果是子进程
*/
10 exit(0);
11 }else{ /* 如果是父进程 */
12 sleep(60); /* 休眠60秒 */
13 wait(NULL); /* 收集僵尸进程 */
14 }
15 }
编译这个程序:
1 $ cc zombie.c -o zombie
后台运行程序,以使我们能够执行下一条命令
1 $ ./zombie &
2 [1] 1217
列一下系统内的进程
1 $ ps -ax
2 ... ...
3 1137 pts/0 S 0:00 -bash
4 1217 pts/0 S 0:00
./zombie
5 1218 pts/0 Z 0:00
[zombie]
6 1578 pts/0 R 0:00 ps
-ax
其中的”Z”就是僵尸进程的标志,它表示1218号进程现在就是一个僵尸进程。
收集Zombie进程的信息,并终结这些僵尸进程,需要我们在父进程中使用waitpid调用和wait调用。这两者的作用都是收集僵尸进程留下的 信息,同时使这个进程彻底消失。
【转载地址】http://blog.chinaunix.net/uid-23177306-id-2531107.html
发表评论
-
日常工作linux命令
2015-08-12 07:58 690btrace –E rt 83583 com.tmall.yo ... -
/dev/zero和/dev/null的区别
2015-08-11 23:17 869http://www.cnblogs.com/jacktu/a ... -
linux top命令查看内存及多核CPU的使用讲述
2015-04-02 16:09 1044linux top命令查看内存及多核CPU的使用讲述 http ... -
securecrt中使用上传下载sftp
2015-03-29 13:14 993SecureCRT这个工具自带了一个FTP,方便我们上传和下载 ... -
SecureCRT自动记录日志
2015-03-27 11:53 766http://lzj0470.iteye.com/blog/ ... -
traceroute & tracert的一些用法
2013-04-17 11:05 1794traceroute 跟踪数据包到达网络主机所经过的路由工具; ... -
PS的aux和-ef参数 .
2013-04-17 11:04 1141一直以为ps aux就可以列出所有的在运行进程,最近发现还是有 ... -
Linux下长时间ping网络加时间戳并记录到文本
2013-03-07 18:21 1683Linux下长时间ping网络加时间戳并记录到文本 由于一 ... -
查看和修改Linux服务器的时区和时间
2012-10-25 18:39 1493本文转帖自:http://www.lidecheng.com/ ... -
linux 下 ifconfig、shutdown等命令无法使用_开启Shell命令
2012-07-13 16:31 1444为什么在 RedHat Linux 5 下不能使用 ifcon ... -
解决RedHat中ifconfig命令不能使用的问题
2012-07-12 18:55 0在RedHat中, 打开终端, 运 ... -
2011-03-22 13:43 【转】linux tar打包解压详解
2012-07-12 10:09 967tar命令 t ... -
Linux TOP命令 按内存占用排序和按CPU占用排序
2012-07-03 20:39 15321:在命令行提示符执行top命令 2:输入大写P,则结果按C ... -
Linux:挂接(mount)命令的使用方法
2011-11-21 11:05 1018挂接命令(mount) 首先,介绍一下挂接(mount) ... -
chkconfig命令
2011-11-21 10:54 956[b]功能说明:检查、设定系统的各种服务。[/b] 语法 ... -
linux下root用户开启telnet
2011-11-20 21:25 1090http://www.cnblogs.com/suhuaiqi ... -
Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
2011-09-30 09:50 1199我们先写一个简单的脚本,执行以后再解释各个变量的意义 ... -
linux vi utf-8编码显示乱码[转载]
2011-09-16 09:04 1911解决方法:cuteftp -> 全局设置内 -> ... -
linux删除文件夹操作命令[转载]
2011-09-15 10:38 1131linux删除目录很简单,很多人还是习惯用rmdir,不过一旦 ... -
RedHat Linux 下 Tomcat开机实现自启动[转载]
2011-09-15 10:27 1666一、设置系统级环境变量: 修改/etc/profile 文件 ...
相关推荐
python入门-30.寻找列表中只出现一次的数字——寻找单身狗.py
linux优化笔记,配套视频:https://www.bilibili.com/list/474327672?sid=4496133&spm_id_from=333.999.0.0&desc=1
知识付费系统-直播+讲师入驻+课程售卖+商城系统-v2.1.9版本搭建以及资源分享下载,CRMEB知识付费分销与直播营销系统是由西安众邦科技自主开发的一款在线教育平台,该系统不仅拥有独立的知识产权,还采用了先进的ThinkPhp5.0框架和Vue前端技术栈,集成了在线直播教学及课程分销等多种功能,旨在为用户提供全方位的学习体验,默认解压密码youyacaocom
美妆神域-JAVA-基于springBoot美妆神域设计与实现
原生js制作Google粘土logo动画涂鸦代码.zip
golin 扫描工具使用, 检查系统漏洞、web程序漏洞
原生态纯js图片网格鼠标悬停放大显示特效代码下载.zip
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
去水印web端独立版web
原生js制作左侧浮动可折叠在线客服代码.zip
Chrome 谷歌浏览器下载
全新完整版H5商城系统源码 自己花钱买的,亲测可用,需要自行下载 H5商城系统设置是实现商城基本功能的核心部分,涵盖了从网站配置、短信和支付配置,到商品、工单、订单、分站和提现管理等多个模块的设置。以下是详细的设置指南,帮助您快速上手并高效管理商城系统。 测试环境:Nginx+PHP7.0+MySQL5.6 1. 网站配置 设置商城名称、LOGO、标题、联系方式和SEO关键词等,确保商城专业和易于搜索。 2. 短信配置 配置短信接口和模板,用于发送订单通知、验证码等,提升用户体验。 3. 支付接口配置 配置微信、支付宝等支付接口,填写API密钥和回调地址,确保支付流畅。 4. 商品分类管理 对商品进行分类和排序,设置分类名称和图标,便于用户查找商品。 5. 商品管理 添加和管理商品信息、规格、图片等,确保商品信息准确丰富。 6. 工单管理 查看和回复用户工单,记录售后问题,提升用户服务质量。 7. 订单管理 查看订单详情,更新订单状态,支持批量导出,方便订单跟踪。 8. 分站管理 创建不同区域分站,设置权限,统一管理各区域市场。 9. 提现管理
apk安装包
原生js选项卡插件自定义图片滑动选项卡切换.zip
宗教信息佛教佛寺寺庙庵堂相关数据集提供了全国各个地区省市县各个佛教寺庙的详细信息。这些数据不仅包括寺庙的名称和负责人姓名,还涵盖了所属省份、地级市、区县、具体地址、建立日期以及支派类别等关键信息。该数据集整理了超过3万条样本,为研究中国佛教寺庙的分布、历史和文化提供了丰富的第一手资料。这些信息有助于了解佛教在中国的传播和发展,以及寺庙在社会和文化中的作用。数据的整理和提供,对于宗教学、社会学、历史学和文化研究等领域的学者来说,是一个宝贵的资源。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
简单的 Python 版本管理pyenvpyenv 可让您轻松在多个 Python 版本之间切换。它简单、不引人注目,并遵循 UNIX 传统,即使用单一用途的工具来做好一件事。该项目由rbenv和 ruby-build分叉而来,并针对 Python 进行了修改。pyenv 的作用是什么......允许您根据每个用户更改全局 Python 版本。为每个项目的 Python 版本提供支持。允许您使用环境变量覆盖 Python 版本。一次搜索多个 Python 版本的命令。这可能有助于使用tox跨 Python 版本进行测试。与 pythonbrew 和 pythonz 相比,pyenv没有……依赖于Python本身。pyenv由纯shell脚本制作。不存在Python的引导问题。需要加载到你的 shell 中。相反,pyenv 的 shim 方法通过向你的 中添加目录来工作PATH。管理虚拟环境。当然,你可以自己创建虚拟环境 ,或者使用pyenv-virtualenv 来自动化该过程。目录安装获取 PyenvLinux/UNIX自动安装程序基本
Notepad-v2.20工具,是替代Notepad++的首选工具
原生js随机图片拖拽排序代码.zip
更快、更好、更稳定的Redis桌面(GUI)管理客户端,兼容Windows、Mac、Linux,性能出众,轻松加载海量键值