开发者管理服务器必备技能之Linux进程管理
sinye56 2024-11-27 20:29 5 浏览 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信息非常多,用来调整系统性能。
相关推荐
- 程序员:JDK的安装与配置(完整版)_jdk的安装方法
-
对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...
- Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置
-
一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...
- 麒麟系统安装JAVA JDK教程_麒麟系统配置jdk
-
检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...
- 学习笔记-Linux JDK - 安装&配置
-
前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...
- Linux新手入门系列:Linux下jdk安装配置
-
本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...
- 测试员必备:Linux下安装JDK 1.8你必须知道的那些事
-
1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...
- Linux 下安装JDK17_linux 安装jdk1.8 yum
-
一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...
- 在Ubuntu系统中安装JDK 17并配置环境变量教程
-
在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...
- 如何在 Linux 上安装 Java_linux安装java的步骤
-
在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...
- Windows和Linux环境下的JDK安装教程
-
JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...
- linux安装jdk_linux安装jdk软连接
-
JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...
- linux安装jdk,全局配置,不同用户不同jdk
-
jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...
- 运维大神教你在linux下安装jdk8_linux安装jdk1.7
-
1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...
- window和linux安装JDK1.8_linux 安装jdk1.8.tar
-
Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...
- 最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?
-
默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle忘记用户名密码 (59)
- oracle11gr2安装教程 (55)
- mybatis调用oracle存储过程 (67)
- oracle spool的用法 (57)
- oracle asm 磁盘管理 (67)
- 前端 设计模式 (64)
- 前端面试vue (56)
- linux格式化 (55)
- linux图形界面 (62)
- linux文件压缩 (75)
- Linux设置权限 (53)
- linux服务器配置 (62)
- mysql安装linux (71)
- linux启动命令 (59)
- 查看linux磁盘 (72)
- linux用户组 (74)
- linux多线程 (70)
- linux设备驱动 (53)
- linux自启动 (59)
- linux网络命令 (55)
- linux传文件 (60)
- linux打包文件 (58)
- linux查看数据库 (61)
- linux获取ip (64)
- linux进程通信 (63)