首页 > 编程知识 正文

红帽认证rhce考试时间,红帽rhce认证查询

时间:2023-05-05 03:45:48 阅读:261694 作者:2969

列出进程

进程的定义: 进程(process)是已启动的可执行程序的运行中实例,由以下部分组成: 1. 已分配的内存地址空间 2. 安全属性,包括所有权凭据与特权。 3. 程序代码中一个或多个的执行线程(thread) 4. 进程状态

进程的环境包括:

1. 本地与全局变量 2. 当前调度上下文(context) 3. 已分配的系统资源,如文件描述符与网络端口。现有的父进程复制自己的内存地址空间(fork)来创建一个新的子进程结构。每个新进程分配有一个唯一进程ID(PID),满足跟踪和安全性。PID和父进程ID(PPID)是新进程环境的元素。任何进程可创建子进程,所有进程都是第一个系统进程创建的。在RHEL 8/7上,第一个系统进程是systemd 通过fork进程,子进程继承安全性⾝份、过去和当前的文件描述符、端口和资源特权、环境变量,以及程序代码。随后,子进程可能执行(exec)其自己的程序代码。通常,父进程在子进程运行期间处于睡眠状态(sleep),设置在子进程完成时发出信号的请求(wait)。在退出时,子进程已经关闭或丢弃了其资源和环境。唯一剩下的资源称为僵停(zombie),是进程表中的一个条目(entry)。父进程在子进程退出时收到信号被唤醒(wake),清理进程表的zombie条目,释放子进程的最后一个资源。然后,父进程继续执行自己的程序代码。

描述进程状态:

多任务操作系统中,每个CPU(或CPU核心)同一时间片处理一个进程, 进程运行时具有不同状态。

Linux进程状态说明:

1. R(Running or Runnable,运行): 正在运行或在运行队列中等待。 2. S(Sleeping,睡眠): 可中断睡眠,浅度睡眠,可被唤醒,在等待某个条件的形成或接收到(子进程)信号。 3. D(Uninterruptible Sleeping/Disk Sleeping,不可中断睡眠): 不可中断睡眠,深度睡眠,收到信号不唤醒和不可运行,通常在磁盘写入时发生。 4. Z(Zombie,僵死): 子进程终止退出,父进程仍在运行,但父进程未等待子进程的退出状态,即父进程不调用wait() 或waitpid()系统调用,子进程进入僵死状态。 5. X(Dead,死亡): 父进程清理子进程的剩余状态,彻底释放子进程资源,该状态在进程列表中不出现。 6. T(Traced or Stopped,停止): 进程收到SIGSTOP、SIGTSTP、SIGTTOU等信号后停止运行。 注意: 1. Linux进程状态后缀表示: a. <:优先级高的进程 b. N:优先级低的进程 c. L:有些页被锁进内存 d. s:具有子进程的父进程 e. l:具有多线程的进程 f. +:位于后台的进程组 2. $ man ps:查看ps帮助文档 3. 若子进程的父进程先结束,那么该进程就不会变成僵尸进程。 因为每个进程结束时,系统都会扫描当前系统中所运行的所有进程,查看是否有哪个进程是刚结束的 这个进程的子进程,如果存在子进程,就由1号进程(init或systemd进程)接管,成为其父进程, 从而保证每个进程都会有一个父进程,该子进程称为“孤儿进程”。 4. init或systemd会自动wait其子进程,因此被init或systemd接管的所有进程都不会变成僵尸进程。 5. 产生僵尸进程的原因:程序代码逻辑问题、对程序的非常规操作等。 6. 处理僵尸进程: a. 僵尸进程在进程表中常表现为"<defunct>"状态 b. 杀死该僵尸进程的父进程可将其清除,若依然无效可重启操作系统。

列出进程:
ps命令用于列出当前会话进程,包括:

1. 运行进程的用户UID 2. 进程PID 3. 进程使用的CPU百分比 4. 进程的物理内存使用百分比(不包含Swap空间) 5. 进程的STDOUT位置,称为控制终端。 6. 当前进程状态

其中ps -aux(UNIX POSIX格式)不同于 ps aux(BSD格式)
$ ps aux:查看系统上运行的所有进程,-a选项为显示当前终端的进程,-u选项显示运行进程的用户。

$ ps aux --sort [+|-]%cpu:正序或反序排列CPU使用百分比 $ ps aux --sort [+|-]%mem:正序或反序排列物理内存使用百分比 $ ps aux --sort [+|-]rss:正序或反序排列实际使用的物理内存 $ ps auxm:查看系统上运行的所有进程,并在每个进程下显示该进程的所有线程。 $ ps lax:长列表格式输出系统上运行的所有进程 $ ps -ef:全格式输出系统上运行的所有进程 $ ps -efL:全格式输出系统上运行的所有进程,并显示给个进程的线程数(NLWP)。 $ ps -L -C <process_name>:查看指定进程的线程信息 $ ps -L [-p|p|-q|q] <pid>:查看指定进程的线程信息 [root@VM-0-3-centos ~]# ps -auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.2 125616 4088 ? Ss Oct09 11:29 /usr/lib/systemd/systemd --switchroot 2 0.0 0.0 0 0 ? S Oct09 0:00 [kthreadd]root 4 0.0 0.0 0 0 ? S< Oct09 0:00 [kworker/0:0H]root 6 0.0 0.0 0 0 ? S Oct09 1:14 [ksoftirqd/0] [root@VM-0-3-centos ~]# ps laxF UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND4 0 1 0 20 0 125616 4088 ep_pol Ss ? 11:29 /usr/lib/systemd/systemd --sw1 0 2 0 20 0 0 0 kthrea S ? 0:00 [kthreadd]1 0 4 2 0 -20 0 0 worker S< ? 0:00 [kworker/0:0H]1 0 6 2 20 0 0 0 smpboo S ? 1:14 [ksoftirqd/0] [root@VM-0-3-centos ~]# ps -efUID PID PPID C STIME TTY TIME CMDroot 1 0 0 Oct09 ? 00:11:29 /usr/lib/systemd/systemd --switched-root --system root 2 0 0 Oct09 ? 00:00:00 [kthreadd]root 4 2 0 Oct09 ? 00:00:00 [kworker/0:0H]root 6 2 0 Oct09 ? 00:01:14 [ksoftirqd/0]root 7 2 0 Oct09 ? 00:00:00 [migration/0]root 8 2 0 Oct09 ? 00:00:00 [rcu_bh]root 9 2 0 Oct09 ? 00:03:37 [rcu_sched]

方括号中的进程(通常位于列表顶部)为调度的内核线程。
僵停列为 exiting 或 。
ps命令的输出显示一次。
使用top命令来获得动态更新的进程显示。
pstree命令可以采用树形显示格式,以便查看父进程和子进程之间的关系。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。