热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

进程管理与操作

进程管理程序:静态的代码,占用磁盘空间进程:动态的代码,占用内存,cpu唯一标识:PID编号父进

进程管理

        程序:静态的代码,占用磁盘空间

        进程:动态的代码,占用内存,cpu

        唯一标识:PID  编号

        父进程/子进程    僵尸进程    孤儿进程

查看进程树


  • pstree — Processes Tree

—格式:pstree [选项] [PID或用户名]


  • 常用命令选项

— -a:显示完整的命令行

— -p:列出对应PID编号

systemd:所有进程的父进程,上帝进程

终端1:

[root@server ~]# su - njw

[njw@server ~]$ vim abc.txt

终端2:

[root@server ~]# pstree njw          #查询njw运行的进程

bash───vim

[root@server ~]# pstree -p njw

bash(10176)───vim(10271)

[root@server ~]# pstree -ap njw        #显示当前njw运行的所有进程

bash,10176

  └─vim,10271 abc.txt

pstree支持过滤命令

[root@server ~]# pstree | grep named

        |-named---3*[{named}]

查看进程快照


  • ps — Processes Snapshot

—格式:ps  [选项]...


  • 常用命令选项

— aux:显示当前终端所有进程(a)、当前用户在所有终端下的进程(x),以用户格式输出(u)

— -elf:显示系统内所有进程(-e)、以长格式输出信息(-I)、包括最完整的进程信息(-f)


  • ps aux操作

—列出正在运行的所有进程

[root@server ~]# ps aux

 

用户  进程ID  %CPU  %内存  虚拟内存  固定内存  终端  状态  起始时间  CPU时间  程序指令


  • ps -elf 操作

—列出正在运行的所有进程,查询进程的父进程

[root@server ~]# ps -elf

 

PPID:父进程ID;    PRI/NI:进程优先级,数值越小优先级越高

进程动态排名


  • top交互式工具

—格式:top  [-d 刷新秒数]  [-U  用户名]

[root@server ~]# top -d 1

大写P  进行CPU排序

大写M  进行内存排序

 

系统时间  虚拟机运行时间未关机  正在登陆系统的用户  CPU在一定时间内处理进程个数的平均值 

总共进程个数  正在运行的进程个数  待机的进程个数  0个停止  0个僵尸进程

检索进程


  • pgrep — Process Grep

—用途:grep  [选项]...  查询条件


  • 常用命令选项

— -l:输出进程名,而不仅仅是PID

— -U:检索指定用户的进程

— -x:精确匹配完整的进程名

[root@server ~]# pgrep -l a    #查找名字带a的进程

 

[root@server ~]# pgrep -lU njw    #查询njw用户运行的进程

[root@server ~]# pgrep -xl rsyslogd

1080 rsyslogd

#######################################################################

进程的前后台的调度


  • 前台启动

—输入正常命令行,运行期间占用当前终端


  • 后台启动

—在命令行末尾添加"&"符号,不占用当前终端


  • Ctrl + z 组合键

—挂起当前进程(暂停并转入后台)


  • jobs 命令

—查看后台任务列表


  • fg 命令

—将后台任务恢复到前台运行


  • bg 命令

—激活后台被挂起的任务

[root@server ~]# sleep 900 &          #正在运行放入后台

[1] 12338               

[root@server ~]# jobs                        #查看后台运行的进程

[1]+  Running                sleep 900 &

[root@server ~]# sleep 800

^Z                                                        #Ctrl + z 暂停放入后台

[2]+  Stopped                sleep 800

[root@server ~]# bg 2                        #将后台编号为2的进程继续运行

[root@server ~]# jobs

[1]-  Running                sleep 900 &

[2]+  Running                sleep 800 &

[root@server ~]# fg 2                          #将后台编号为2的进程恢复到前台

sleep 800

^C                                                        #按Ctrl + c 终止进程

[root@server ~]# jobs

[1]+  Running                sleep 900 &

[root@server ~]# fg 1                          #将后台编号为1的进程恢复到前台

sleep 900

^C                                                        #按Ctrl + c 终止进程

[root@server ~]# jobs

####################################################################

杀死进程


  • 干掉进程的不同方法

—Ctrl + c 组合键,终端当前命令程序

—kill  [-9]  PID... 、kill  [-9]  %后台任务编号

—killall  [-9]  进程名  ...

—pkill  查找条件

#选项 -9 为强制杀死进程,一般用于僵尸进程和孤儿进程

[root@server ~]# sleep 500 &

[1] 12574

[root@server ~]# sleep 600 &

[2] 12581

[root@server ~]# sleep 700 &

[3] 12591

[root@server ~]# sleep 800 &

[4] 12610

[root@server ~]# jobs -l        #显示后台进程,包括进程PID编号

[1]  12574 Running                sleep 500 &

[2]  12581 Running                sleep 600 &

[3]- 12591 Running                sleep 700 &

[4]+ 12610 Running                sleep 800 &

[root@server ~]# kill 12574

[1]  Terminated              sleep 500

[root@server ~]# jobs -l

[2]  12581 Running                sleep 600 &

[3]- 12591 Running                sleep 700 &

[4]+ 12610 Running                sleep 800 &

[root@server ~]# kill -9 12581

[2]  Killed                  sleep 600

[root@server ~]# jobs -l

[3]- 12591 Running                sleep 700 &

[4]+ 12610 Running                sleep 800 &

[root@server ~]# killall sleep

[3]-  Terminated              sleep 700

[4]+  Terminated              sleep 800

[root@server ~]# jobs -l

######################################################################

强制踢出一个用户(杀死该用户开启的所有进程)

[root@server ~]# killall -9 -u njw


推荐阅读
  • 如何利用Apache与Nginx高效实现动静态内容分离
    如何利用Apache与Nginx高效实现动静态内容分离 ... [详细]
  • 技术日志:Ansible的安装及模块管理详解 ... [详细]
  • 本文探讨了如何通过编程手段在Linux系统中禁用硬件预取功能。基于Intel® Core™微架构的应用性能优化需求,文章详细介绍了相关配置方法和代码实现,旨在帮助开发人员有效控制硬件预取行为,提升应用程序的运行效率。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 在 CentOS 6.5 系统上部署 VNC 服务器的详细步骤与配置指南
    在 CentOS 6.5 系统上部署 VNC 服务器时,首先需要确认 VNC 服务是否已安装。通常情况下,VNC 服务默认未安装。可以通过运行特定的查询命令来检查其安装状态。如果查询结果为空,则表明 VNC 服务尚未安装,需进行手动安装。此外,建议在安装前确保系统的软件包管理器已更新至最新版本,以避免兼容性问题。 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • 本文探讨了 Kafka 集群的高效部署与优化策略。首先介绍了 Kafka 的下载与安装步骤,包括从官方网站获取最新版本的压缩包并进行解压。随后详细讨论了集群配置的最佳实践,涵盖节点选择、网络优化和性能调优等方面,旨在提升系统的稳定性和处理能力。此外,还提供了常见的故障排查方法和监控方案,帮助运维人员更好地管理和维护 Kafka 集群。 ... [详细]
  • 在JavaWeb项目架构中,NFS(网络文件系统)的实现与优化是关键环节。NFS允许不同主机系统通过局域网共享文件和目录,提高资源利用率和数据访问效率。本文详细探讨了NFS在JavaWeb项目中的应用,包括配置、性能优化及常见问题的解决方案,旨在为开发者提供实用的技术参考。 ... [详细]
  • 在项目开发过程中,掌握一些关键的Linux命令至关重要。例如,使用 `Ctrl+C` 可以立即终止当前正在执行的命令;通过 `ps -ef | grep ias` 可以查看特定服务的进程信息,包括进程ID(PID)和JVM参数(如内存分配和远程连接端口);而 `netstat -apn | more` 则用于显示网络连接状态,帮助开发者监控和调试网络服务。这些命令不仅提高了开发效率,还能有效解决运行时的各种问题。 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 在 Linux 环境下,多线程编程是实现高效并发处理的重要技术。本文通过具体的实战案例,详细分析了多线程编程的关键技术和常见问题。文章首先介绍了多线程的基本概念和创建方法,然后通过实例代码展示了如何使用 pthreads 库进行线程同步和通信。此外,还探讨了多线程程序中的性能优化技巧和调试方法,为开发者提供了宝贵的实践经验。 ... [详细]
author-avatar
依love依CENE_790
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有