首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

100个Linux命令(7)-进程管理

这是100个命令的第7篇文章,主要关于进程的管理命令以及你应该知道关于进程的基本原理,相对于命令的理解,应该更加注重对于进程本身的理解。...创建进程的方法以及父子进程 每一个进程都会有一个唯一的 PID,在某进程的环境下执行或调用了程序,这个程序触发的进程就是子进程进程的 PPID 就是该进程的父进程的 PID,由此可知,子进程总是由父进程创建...且杀死父进程(非终端进程),会导致子进程变成孤儿进程,孤儿进程的父进程总是init/systemd。 进程的状态以及转换 进程并非总是处于运行中,至少cpu没运行在它身上时它就是非运行的。...进程结构和子 shell 前台进程 一般命令(如 cp 命令)在执行时都会fork子进程来执行,在子进程执行过程中,父进程会进入睡眠,这类是前台进程。...在子进程死亡的那一刹那,子进程的状态就是僵尸进程,但因为发出了SIGCHLD信号给父进程,父进程只要收到该信号,子进程就会被清理也就不再是僵尸进程

1.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

进程服务器

一、思路 先与客户端建立好连接, 每次监听到一个客户端之后,都需要产生一个子进程去处理这个连接,然后父进程继续去等待监听,唯一一个要注意的点就是要使用信号来监听子进程是否结束,从而对其进行回收,防止僵尸进程的产生...&opt, sizeof(opt)); (3)bind函数 bind(lfd, (struct sockaddr*)&ser_addr, sizeof(ser_addr));b这个函数主要目的就是将服务器的地址结构绑定到套接字...lfd上,所以开始要设置服务器的ser_addr:ser_addr.sin_family = AF_INET, ser_addr.sin_port = htons(8888);ser_addr.sin_addr.s_addr...监听到了客户端后,就要开始创建子进程来对这个监听进行处理;pid = fork() 3、子进程处理通信 因为子进程不需要监听连接,使用可以close(lfd);之后便可以进行通信处理 void do_work...sizeof(buf)); tcp.Write(cfd, buf, n); tcp.Write(STDOUT_FILENO, buf, n); } } 4、父进程回收子进程

4.7K20

基于JVisualVM的可视化监控

visualvm.github.io/documentation.html 一、介绍 VisualVM,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100...VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100...而本小节我们将介绍一下如何使用jvisualvm来监控远程的java进程,我们这里以线上服务器的Tomcat为例。...打开jvisualvm,双击 “远程” 选项,添加一个远程主机,即远程的服务器: ?...注意,如果你使用的是阿里云等云服务器的话,不仅需要配置防火墙规则来开放端口,还需要到云服务器的安全组规则中,增加相应的端口规则,如下: ? 连接成功后,如下: ?

2.2K20

Nginx服务器进程

Nginx服务器进程有3类:主进程、工作进程、缓存进程 (1)主进程 Nginx启动时运行的主要进程,主要功能是与外界通信和对内部其他进程进行管理 主要工作内容 1)读取配置文件,验证有效性和正确性...2)建立、绑定、关闭 socket 3)按照配置生成、管理、结束工作进程 4)接收指令,如 重启、升级、退出 5)不中断服务,平滑重启、升级,升级失败的回滚处理 6)开启日志文件,获取文件描述符 (2)...工作进程 由主进程生成,生成数量由配置文件指定,工作进程生存于主进程的整个生命周期 主要工作内容 1)接收请求 2)将请求依次送入各个功能模块进行过滤处理 3)IO调用,获取响应数据 4)与后端服务器通信...,接收后端服务器处理结果 5)数据缓存,访问缓存索引、查询、调用缓存数据 6)发送请求结果 7)接收主进程指令,如 重启、升级、退出 (3)缓存进程 缓存进程有两类 1)缓存索引重建进程 nginx启动后由主进程生成...,在缓存元数据重建完成后就自动退出 该进程启动后,对缓存文件的目录结构扫描,在内存中建立索引元数据库 2)缓存索引管理进程 生存于主进程的整个生命周期 负责在索引元数据更新完成后,对元数据是否过期进行判断

4.4K40

GC 性能调优

这个问题比较业余,因为很多不同的服务器配置都能支撑(1.5G 16G) 1小时360000集中时间段, 100个订单/秒,(找一小时内的高峰期,1000订单/秒) 经验值, 非要计算:一个订单产生需要多少内存...(面试高频) CPU100%那么一定有线程在占用系统资源, 找出哪个进程cpu高(top) 该进程中的哪个线程cpu高(top -Hp) 导出该线程的堆栈 (jstack) 查找哪个方法(栈帧)消耗时间...(a java.lang.Object) 假如有一个进程100个线程,很多线程都在waiting on ,一定要找到是哪个线程持有这把锁 怎么找?...,甚至卡顿(电商不适合) 1:设定了参数HeapDump,OOM的时候会自动产生堆转储文件(不是很专业,因为多有监控,内存增长就会报警) 2:很多服务器备份(高可用),停掉这台服务器对其他服务器不影响...-Dcom.sun.management.jmxremote.port=11111 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl

1.3K10

下单接口调优实战,性能提高10倍

为了监控服务器服务器中JAVA进程,我们需要开启JMX,可以在JAVA进程启动的时候,添加如下几个参数: JMX_OPTS="-Dcom.sun.management.jmxremote.port=7969...-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl...Djava.rmi.server.hostname=xx.xx.xx.xx" nohup java ${JMX_OPTS} -jar xxxxx.jar Djava.rmi.server.hostname填写JAVA进程所在服务器的...IP地址,-Dcom.sun.management.jmxremote.port=7969是指定JMX监控端口的,这里是7969。...在压测的过程中,做一下线程dump,同时利用nmon观察应用服务器CPU的负载情况。 ? 负载很低,将线程并发调整到100后,CPU还是上不去,这样的话,初步可以判断,代码里有锁。

89920

进程TCP并发服务器

进程TCP并发服务器 最初的服务器都是迭代服务器服务器处理完一个客户的请求,再接受下一个客户的请求。但是我们的期望应该是一台服务器同时为多个客户服务。...实现并发服务器最简单的办法就是为每个客户均fork一个子进程。...[accept返回后客户-服务器的状态] 并发服务器的下一步是调用fork,下图是从fork返回后的状态。此时描述字listenfd和connfd是父进程-子进程共享的。...[fork返回后客户-服务器的状态] 下一步是父进程关闭已连接套接口,子进程关闭监听套接口。...[父子进程关闭相应套接口后客户-服务器的状态] 最后的结果是子进程处理与客户的连接,父进程可对监听套接口调用accept来处理下一个连接。

5.9K90

服务器被入侵,异常进程无法杀掉,随机进程

故事情节: 有一天在聚餐中,我有一个朋友和我说他的服务器上有有个异常的进程他一直在占满CPU在运行,我在一顿谦虚之后答应了他,有空登录上他的服务器看一下具体情况。...就是以上三张图,在proc目录中的exe指向的文件已被删除,我看到这里,我好奇这个进程肯定是被隐藏掉了。这时,我急中生智跟这位朋友要了root账号密码。...登录服务器用top命令一看,发现一个奇怪的进程在运行,我使用kill命令将其杀后,等了十来分钟后,发现没有被启动,这时我和这位朋友说干掉了,他问我是不是kill掉了,我说嗯,他又补充到,这个进程杀掉过段时间会起来的...没过多久,我又看了一下,发现这个进程换了个名字又启动了。...还干满了CPU,就在这时,我在研究这个进程运行文件的时候发现: 这个进程会连到一个韩国的服务器上,我访问这个IP发现是一个正常的网站,没有异常情况。

11.1K40

python 进程间通信(四) -- 共享内存与服务器进程

进程间通信(三) — 进程同步原语及管道与队列 回顾操作系统所提供的所有进程间通信方式的系统调用,我们会发现还有两种进程间通信方式我们还没有介绍:共享内存与域套接字,本文我们就来介绍这剩下的几种 IPC...但 Python 的 multiprocessing 包中仍然提供了两种方法让你可以在多进程环境下共享数据: 共享内存 服务器进程 3....服务器进程 — server process python 提供了一种十分类似共享内存的数据共享机制 — 服务器进程。...通过 multiprocessing 包中的 Manager 类可以构造一个服务器进程对象,他支持用于进程间共享的多种数据类型: list dict Namespace Lock RLock Semaphore...BoundedSemaphore Condition Event Barrier Queue Value Array 一旦创建,对象的使用与原生类型的用法是完全相同的,因此相比于共享内存,服务器进程的使用更为简单和灵活

4.4K20

普通防火墙下如何放行工业OPC DA协议

OPC DA协议是工控领域常用协议之一,OPC DA采用微软的COM技术,在不同工控机上采用OPC DA通讯则采用DCOM技术,而DCOM则采用微软的RPC动态端口,所以在普通商用防火墙上是无法支持OPC...Windows 中的RPC服务是允许在自定义配置项(例如注册表项)中指定服务器端口。当指定专用服务端口时,就知道哪些流量在穿越防火墙的主机之间流动。可以以更直接的方式定义允许哪些流量。...如果是,则使用默认值的进程将从网络可用端口集中分配端口,如先前所定义。如果为 N,则使用默认值的进程将从仅限网络的端口集中分配端口。...新的注册表项如下所示: Ports: REG_MULTI_SZ: 5000-6000 PortsInternetAvailable: REG_SZ: Y UseInternetPorts: REG_SZ: Y 重新启动服务器...低于 5000 的端口号可能已被其他应用程序使用,并可能导致与 DCOM 应用程序发生冲突。此外,根据以往的经验,至少应打开 100 个端口,因为工控服务依赖这些 RPC 端口进行相互通信。

46210

内网渗透测试:利用DCOM进行横向渗透

利用这个接口,客户端程序对象能够向网络中另一台计算机上的服务器程序对象发送请求。 DCOM是COM(组件对象模型)的扩展,它允许应用程序实例化和访问远程计算机上COM对象的属性和方法。...DCOM 使用远程过程调用(RPC)技术将组件对象模型(COM)的功能扩展到本地计算机之外,因此,在远程系统上托管COM服务器端的软件(通常在DLL或exe中)可以通过RPC向客户端公开其方法。...使用DCOM进行横向移动的优势之一在于,在远程主机上执行的进程将会是托管COM服务器端的软件。...例如我们滥用ShellBrowserWindow COM对象,那么就会在远程主机的现有explorer.exe进程中执行。...域成员服务器(Windows 7): IP地址:192.168.52.143 用户名:Aministrator 密码:Liu78963 域控制器DC(Windows Server 2008): IP地址

2.6K20

学习笔记之JVM调优之调优案例让你吊打面试官

PS + PO -> 加内存 换垃圾回收器 -> PN + CMS + SerialOld(几个小时 - 几天的STW) 几十个G的内存,单线程回收 -> G1 + FGC 几十个G -> 上T内存的服务器...(面试高频) 首先CPU100% 那么一定有线程占用系统资源 Ø 找出哪个进程cpu高(top命令) Ø 该进程中哪个线程cpu高(top -Hp命令) Ø 导出该线程的堆栈(jstack命令) Ø 查找那个方法...100个线程,很多线程都在waiting on ,一定要找到是哪个线程持有这把锁 怎么找?...-Dcom.sun.management.jmxremote.port=11111 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl...,甚至卡顿(电商不合适) 设定了HeapDump参数,OOM的时候会自动产生堆转储文件 很多服务器备份(高可用)停掉这台服务器不影响 在线排查 Heap dump部分: 案例剖析: Tomcat

21740

【干货】JVM 优化、内存泄露排查、gc.log 分析方法等

-XX:MaxPermSize=100M 含义为: 永久代固定尺寸为 100M; 整个堆固定尺寸为 300M,其中“老年代 / 新生代”为-XX:NewRatio=2,所以老年代为 200M,新生代为...100M; 新生代总共 100M,其中“Eden / Survivor0”为-XX:SurvivorRatio=8,所以 Eden 为 80M,Survivor0=Survivor1=10M。...选项 java.rmi.server.hostname 的作用:服务器把该值传给 VisualVM,VisualVM 使用该地址查找 RMI 服务,所以必须是客户可以访问的 RMI 服务器的外网地址。...=true ^ -Dcom.sun.management.jmxremote.port=1090 ^ -Dcom.sun.management.jmxremote.ssl=false ^...5 命令行工具(服务端) 5.1 jps(查看Java进程) ### jps -vlm | grep Bootstrap 1162 ## 进程ID -Xms300M -Xmx300M -XX:NewRatio

5.4K33
领券