开发者管理服务器必备技能之Linux进程管理
nanshan 2024-11-01 12:40 15 浏览 0 评论
基于国产深度操作系统学习。
一、概述
1. 进程与程序
Linux 系统中触发任何一个事件时,系统都会将它定义为一个进程,并给这个进程一个ID(PID),同时根据触发这个进程的用户与相关属性关系,给予这个PID一组有效的权限设置。可以与程序简单地进行划分:
- 程序:物理形式存在媒介中
- 进程:存在内存中
在深度系统的系统监视器查看进程:
2. 子进程与父进程
进程之间可以有父子关系,即有一个进程启动另一个进程。
上面通过ps -l可以看到,当在一个bash里启动另一个bash时,新进程的PPID 是前一个bash的PID。
二、常见的进程操作
1. 启动进程
可以直接启动命令的方式启动一个新进程,如使用: vim
2. 后台启动任务 &
使用 &可以将新启动的一个任务放到后台执行如果只使用&,当程序有标准输出、标准错误时,仍会输出一前台。这时可以使用数据流的重定向,把输出数据传送至某个文件中,如:
tar -zpcvf /tmp/aaa.tar.gz /etc > /tmp/log.txt 2>&1 &
这时输出的信息都进入到log.txt里了。
3. 快捷键ctrl+z
可以把正在运行的vim任务放到后台:
vim a
CTRL+Z
在深度系统上有一个系统监视器,可以对硬件负载、程序运行和系统服务运行监测、查看和管理,还支持对进程的搜索、强制结束进程。
jobs -l
查看后台任务。也可以在深度系统的系统监视器看到:
4. 使用fg 任务号 把后台任务恢复
# 百分号可以省略
fg %1
5. 使用bg 让后台任务的状态变成运行中
这个在深度系统没测试成功。
6. 杀进程kill
杀进程失败时, -9进行强制杀进程。kill的参数默认是PID,%的形式杀bash的任务。系统监视器界面可以简单的右键选择结束进程进行杀进程。
7. killall
根据名称杀任务。
三、脱机任务
1. at
定时到指定时间运行任务,放到系统后台运行。
2. nohup
在脱机或注销后,程序仍在运行。
四、查看任务
上面用了深度系统的系统监视器查看任务,命令行可以使用ps命令。
# 查看系统所有进程
ps aux
ps -lA
# 显示进程和进程树状态
ps axjf
# 只看与自己bash相关的任务
ps -l
五、top命令
六、iftop
这个与本章内容并不强关联
1. 作用
查看实时的网络流量,可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等。
2. 安装
yum install -y gcc flex byacc libpcap ncurses ncurses-devel libpcap-devel tcpdump
cd /usr/local/src
wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz
tar xvf iftop-0.17.tar.gz
cd iftop-0.17
./configure --prefix=/usr/local/iftop
make
make install
chmod 700 /usr/local/iftop/sbin/iftop #修改IFTOP权限
参数
语法: iftop -h | [-npblNBP] [-i interface] [-f filter code] [-F net/mask] [-G net6/mask6]
- -h 显示本帮助(Help)信息
- -n 不进行主机名(hostName)查找
- -N 不将端口号(port Number)转换成对应的服务 to services
- -p 混合(Promiscuous)模式(显示网络相关的其他主机信息)
- -b 不显示流量图形条(Bar)
- -B 以字节(Byte)为单位,显示带宽(Bandwidth);默认以比特(bit)显示的
- -i interface 监控的网卡接口(interface)
- -f filter code 包统计时,使用过滤码;默认:无,只统计IP包
- -F net/mask 显示特定IPv4网段的进出流量(Flow);如# iftop -F 10.10.1.0/24
- -G net6/mask6 显示特定IPv6网段的进出流量(Flow)
- -l 显示并统计IPv6本地(Local)链接的流量(默认:关)
- -P 显示端口(Port)
- -m limit 设置显示界面上侧的带宽刻度(liMit)
- -c config file 指定配置(Config)文件
- -t 使用不带窗口菜单的文本(text)接口
排序:
- -o 2s Sort by first column (2s traffic average)
- -o 10s Sort by second column (10s traffic average) [default]
- -o 40s Sort by third column (40s traffic average)
- -o source Sort by source address
- -o destination Sort by destination address
运行
/usr/local/iftop/sbin/iftop
/usr/local/iftop/sbin/iftop -i eth0 -n 就可以看到eth0网卡的流量状况
运行界面
说明
- TX 发送流量
- RX 接收流量
- TOTAL 总流量
- Cumm 运行iftop以来的总流量
- peak 流量峰值
- rates 过去2s 10s 40s 的平均流量
3. 界面命令
主机显示
- n - DNS主机解析的开关
- s - 源(Source)主机显示的开关
- d - 目标(Dest)主机显示的开关
- t - 循环切换行显示模式
端口显示
- N - toggle service resolution
- S - toggle show source port
- D - toggle show destination port
- p - toggle port display
排序
- 1/2/3 - sort by 1st/2nd/3rd column
- < - sort by source name
- > - sort by dest name
- o - freeze current order
普通
- P - 暂停(Pause)显示
- h - 本帮助(Help)的显示或隐藏
- b - 图形条(Bar)的显示或隐藏
- B - cycle bar graph average
- T - toggle cumulative line totals
- j/k - scroll display
- f - edit filter code
- l - set screen filter
- L - lin/log scales
- ! - shell command
- q - quit
七、特殊文件/proc/*
进程映射到的虚拟文件系统。
- /proc/cmdline
给出了内核启动的命令行。
xundh@xundh-PC:~$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-5.3.0-3-amd64 root=UUID=80770366-767a-4583-9ca7-6dccc188aa2e ro splash quiet DEEPIN_GFXMODE=1,1152x864,1600x1200,1280x1024,1024x768
- /proc/cpuinfoCPU信息
- /proc/devices列出字符和块设备的主设备号,及分配到这些设备的设备名称。
- /proc/dma列出由驱动程序保留的DMA通道和保留它们的驱动程序名称。
- /proc/filesystems列出可供使用的文件系统类型。
- /proc/interrupts每一行都有一个保留的中断。
- /proc/ioports列出了硬盘、网卡、声卡等外设的I/O端口范围。
- /proc/kcore物理内存镜像,二进制格式,可以使用GDB来考察内核的数据结构。
- /proc/kmsg用于检索用printk生成的内核消息。
- /proc/ksyms列出已经登记的内核符号。
- /proc/loadavg列出不同的时间间隔计算的系统平均负载。
- /proc/locks包含在打开的文件上的加锁信息。
- /proc/mdstat由md设备驱动程序控制的RAID设备信息
- /proc/meminfo内存状态信息。
- /proc/misc用内核函数misc_register登记的设备驱动程序。
- /proc/modules加载内核模块的信息。可使用lsmod命令显示简要信息。
- /proc/mounts给出当前操作系统安装的文件系统信息。
- /proc/pciPCI设备信息。
- /proc/statCPU、磁盘、内存等信息。
- /proc/uptime系统上次自举以来的秒数,和累计空闲秒数。
- /proc/version内核版本。
- /proc/net联网协议情况。
- /proc/scsiSCSI设备信息。
- /proc/sys信息非常多,用来调整系统性能。
相关推荐
- 实战派 | Java项目中玩转Redis6.0客户端缓存
-
铺垫首先介绍一下今天要使用到的工具Lettuce,它是一个可伸缩线程安全的redis客户端。多个线程可以共享同一个RedisConnection,利用nio框架Netty来高效地管理多个连接。放眼望向...
- 轻松掌握redis缓存穿透、击穿、雪崩问题解决方案(20230529版)
-
1、缓存穿透所谓缓存穿透就是非法传输了一个在数据库中不存在的条件,导致查询redis和数据库中都没有,并且有大量的请求进来,就会导致对数据库产生压力,解决这一问题的方法如下:1、使用空缓存解决对查询到...
- Redis与本地缓存联手:多级缓存架构的奥秘
-
多级缓存(如Redis+本地缓存)是一种在系统架构中广泛应用的提高系统性能和响应速度的技术手段,它综合利用了不同类型缓存的优势,以下为你详细介绍:基本概念本地缓存:指的是在应用程序所在的服务器内...
- 腾讯云国际站:腾讯云服务器如何配置Redis缓存?
-
本文由【云老大】TG@yunlaoda360撰写一、安装Redis使用包管理器安装(推荐)在CentOS系统中,可以通过yum包管理器安装Redis:sudoyumupdate-...
- Spring Boot3 整合 Redis 实现数据缓存,你做对了吗?
-
你是否在开发互联网大厂后端项目时,遇到过系统响应速度慢的问题?当高并发请求涌入,数据库压力剧增,响应时间拉长,用户体验直线下降。相信不少后端开发同行都被这个问题困扰过。其实,通过在SpringBo...
- 【Redis】Redis应用问题-缓存穿透缓存击穿、缓存雪崩及解决方案
-
在我们使用redis时,也会存在一些问题,导致请求直接打到数据库上,导致数据库挂掉。下面我们来说说这些问题及解决方案。1、缓存穿透1.1场景一个请求进来后,先去redis进行查找,redis存在,则...
- Spring boot 整合Redis缓存你了解多少
-
在前一篇里面讲到了Redis缓存击穿、缓存穿透、缓存雪崩这三者区别,接下来我们讲解Springboot整合Redis中的一些知识点:之前遇到过,有的了四五年,甚至更长时间的后端Java开发,并且...
- 揭秘!Redis 缓存与数据库一致性问题的终极解决方案
-
在现代软件开发中,Redis作为一款高性能的缓存数据库,被广泛应用于提升系统的响应速度和吞吐量。然而,缓存与数据库之间的数据一致性问题,一直是开发者们面临的一大挑战。本文将深入探讨Redis缓存...
- 高并发下Spring Cache缓存穿透?我用Caffeine+Redis破局
-
一、什么是缓存穿透?缓存穿透是指查询一个根本不存在的数据,导致请求直接穿透缓存层到达数据库,可能压垮数据库的现象。在高并发场景下,这尤其危险。典型场景:恶意攻击:故意查询不存在的ID(如负数或超大数值...
- Redis缓存三剑客:穿透、雪崩、击穿—手把手教你解决
-
缓存穿透菜小弟:我先问问什么是缓存穿透?我听说是缓存查不到,直接去查数据库了。表哥:没错。缓存穿透是指查询一个缓存中不存在且数据库中也不存在的数据,导致每次请求都直接访问数据库的行为。这种行为会让缓存...
- Redis中缓存穿透问题与解决方法
-
缓存穿透问题概述在Redis作为缓存使用时,缓存穿透是常见问题。正常查询流程是先从Redis缓存获取数据,若有则直接使用;若没有则去数据库查询,查到后存入缓存。但当请求的数据在缓存和数据库中都...
- Redis客户端缓存的几种实现方式
-
前言:Redis作为当今最流行的内存数据库和缓存系统,被广泛应用于各类应用场景。然而,即使Redis本身性能卓越,在高并发场景下,应用于Redis服务器之间的网络通信仍可能成为性能瓶颈。所以客户端缓存...
- Nginx合集-常用功能指导
-
1)启动、重启以及停止nginx进入sbin目录之后,输入以下命令#启动nginx./nginx#指定配置文件启动nginx./nginx-c/usr/local/nginx/conf/n...
- 腾讯云国际站:腾讯云怎么提升服务器速度?
-
本文由【云老大】TG@yunlaoda360撰写升级服务器规格选择更高性能的CPU、内存和带宽,以提供更好的处理能力和网络性能。优化网络配置调整网络接口卡(NIC)驱动,优化TCP/IP参数...
- 雷霆一击服务器管理员教程
-
本文转载莱卡云游戏服务器雷霆一击管理员教程(搜索莱卡云面版可搜到)首先你需要给服务器设置管理员密码,默认是空的管理员密码在启动页面进行设置设置完成后你需要重启服务器才可生效加入游戏后,点击键盘左上角E...
你 发表评论:
欢迎- 一周热门
-
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
[常用工具] OpenCV_contrib库在windows下编译使用指南
-
WindowsServer2022|配置NTP服务器的命令
-
Ubuntu系统Daphne + Nginx + supervisor部署Django项目
-
WIN11 安装配置 linux 子系统 Ubuntu 图形界面 桌面系统
-
解决Linux终端中“-bash: nano: command not found”问题
-
Linux 中的文件描述符是什么?(linux 打开文件表 文件描述符)
-
NBA 2K25虚拟内存不足/爆内存/内存占用100% 一文速解
-
K3s禁用Service Load Balancer,解决获取浏览器IP不正确问题
-
- 最近发表
-
- 实战派 | Java项目中玩转Redis6.0客户端缓存
- 轻松掌握redis缓存穿透、击穿、雪崩问题解决方案(20230529版)
- Redis与本地缓存联手:多级缓存架构的奥秘
- 腾讯云国际站:腾讯云服务器如何配置Redis缓存?
- Spring Boot3 整合 Redis 实现数据缓存,你做对了吗?
- 【Redis】Redis应用问题-缓存穿透缓存击穿、缓存雪崩及解决方案
- Spring boot 整合Redis缓存你了解多少
- 揭秘!Redis 缓存与数据库一致性问题的终极解决方案
- 高并发下Spring Cache缓存穿透?我用Caffeine+Redis破局
- Redis缓存三剑客:穿透、雪崩、击穿—手把手教你解决
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)