精华内容
下载资源
问答
  • #include <sys/stat.h> #include #include #include #include #include #include #define FIFO "../myfifo" int waitsem(int sem_id) { //把信号量操作封装到函数中,提高代码可读性 struct ...
  • Linux程序和进程

    2021-05-16 14:27:52
    Linux程序和进程程序和进程的关系进程的五大状态关于ps命令STAT状态杀进程top 实时查看进程一次性计划任务周期性任务 程序和进程的关系 程序是指保存在硬盘、光盘等个质中的可执行代码和数据,静态保存的代码。 进程...

    程序和进程的关系

    程序是指保存在硬盘、光盘等个质中的可执行代码和数据,静态保存的代码。
    进程是指动态执行的代码,在CPU及内存中运行的程序代码,父,子进程。
    -----每个程序可以创建一个或多个进程

    进程的五大状态

    1.运行状态
    2.可中断睡眠状态
    3.不可中断睡眠状态
    4.将死状态
    5.暂停状态

    关于ps命令

    ps aux 查看系统进程
    以PID进程号由小到大排序
    在这里插入图片描述

    分类 解释
    user id号
    pid 进程号
    %cpu cpu占用率
    %MEM 内存占用率
    VSZ 分配的总虚拟内存
    RSS 实际用到的物理内存
    TTY 运行在哪个终端
    STAT 状态
    START 进程开始时间
    TIME 共占用CPU的时间
    COMMAND 内核

    STAT状态

    STAT部分状态截图
    在这里插入图片描述

    类别 解释
    S 可中断睡眠状态
    D 不可中断的睡眠状态
    R 可执行状态
    Z 将死状态
    T 暂停状态
    s 控制进程
    高优先级
    N 低优先级
    + 进程在前台运行
    l 多线程

    ps -elf 以长格式显示系统中的进程
    在这里插入图片描述
    PRI优先级,越小越优先,不可更改。
    NI root用户可调小,普通用户只可调大
    往往成对出现,需综合起来看,二者相加,越小越优先。

    ps -o ------指定显示某个进程
    pstree命令以属性结构列出进程信息,可以更直观的判断各进程的相互关系(父,子进程)
    yum -y install psmisc 安装pstree命令
    pstree -pua
    pstree -a: 显示完整信息
    pstree -u -------可查看某个进程有谁产生
    pstree -p -------显示进程的pid
    pgrep -l --------查看进程和进程号

    杀进程

    kill +进程号
    pkill +进程
    killall +进程(杀死下面所有进程)
    killall -o 5h —杀死进程时间大于5小时的进程
    killall -y 4h —杀死进程时间小于4小时的进程

    top 实时查看进程

    默认以cpu占用率降序排序
    指定查看

    字母 类别
    M %MEM 内存占用率
    N PID
    s 设置刷新时间
    q 退出

    一次性计划任务

    /var/spool/at/-----用一次性任务的配置文件存放目录
    用户自行设置的at计划任务将被保存到目录/var/spool/at/中
    用户使用at命令创建计划任务,就会在/var/spool/at/目录下生产一个与用户名相同的文件
    创建顺序
    at +时:分 日月年
    输入需求
    ctrl+d 保存退出

    可用atq查看已设置未执行的一次性任务
    atrm +atq查到的任务号
    在这里插入图片描述

    周期性任务

    /var/spool/cron/-----用户cron任务的配置文件存放目录
    用户自行设置的cron计划任务将被保存到目录/var/spool/cron/中
    用户使用crontab命令创建计划任务,就会在/var/spool/cron/目录下生产一个与用户名相同的文件。
    操作步骤
    crontab -e

    // [root@localhost ~]# crontab -e   ##创建
    ;
    

    分 时 日 月 周 绝对路径命令需求
    在这里插入图片描述
    ,代表间隔的多个的不连续的时间点
    -代表一个连续的时间范围为
    / 代表指定间隔的时间频率
    *表示任意时间

    crontab -l ------查看设置的周期性任务
    在这里插入图片描述
    删除某个周期性任务需要进入crontab -e 里dd删除

    crontab -r ------删除全部周期性任务
    在这里插入图片描述

    展开全文
  • Linux进程简述

    2017-10-06 03:19:30
    关于Linux进程相关的几个内容 Linux进程的创建 对应于函数:fork() Linux进程的退出,结束 对应于函数:exit() Linux进程的执行 对应于函数:execve() 对于进程的创建,系统调用fork()允许一个进程(父进程)创建一个...

    关于Linux进程相关的几个内容

    • Linux进程的创建 对应于函数:fork()
    • Linux进程的退出,结束 对应于函数:exit()
    • Linux进程的执行 对应于函数:execve()

    对于进程的创建,系统调用fork()允许一个进程(父进程)创建一个新进程(子进程)。新的进程几乎就等于父进程的翻版,子进程获得了父进程的栈,数据段,堆和执行文本段的拷贝。

    对于进程的终止,则是使用exit(status)函数,此函数会将进程所占用的所有资源(内存,文件描述符等)归还内核,交给内核进行再次分配。status这个参数则表明了进程退出的状态,父进程可以使用wait()来获取到该状态。

    系统会调用wait(),其原因有二:

    • 如果子进程尚未调用exit()终止,那么wait()会挂起父进程直至子进程终止
    • 子进程的终止状态通过wait()的status参数来进程返回

    最后,系统调用execve(pathname,argv,envp)来加载一个新的程序到当前进程的内存之中,注意,在子进程的内存中现在还存在着父进程留下的程序文本段,但是此函数执行后,会丢弃掉现存的程序文本段,并为新程序重新创建栈,数据段,以及堆,把这一系列的行为称之为:execing。值得注意的是exec开头的还有多个函数,但是无一例外,它们都是由execve函数为基础的。

    对以上的内容稍微做个总结可以得出如下图的内容,下图以一个shell执行命令为例子:
    这里写图片描述

    进程创建

    如上所述,创建新景程主要是使用了以下函数:

    #include <unistd.h>
    pid_t fork(void)

    理解这个函数需要知道如下的信息:

    • 在此函数调用之后就已经存在两个进程了
    • 这两个 进程拥有相同的程序文本段,也就是说,若果什么都不做,这两个进程会执行相同的指令
    • 然而,这两个进程却拥有不同的栈,数据段,以及堆拷贝,也就是说,两个进程各自修改栈数据与堆变量都不会受另一个进程的影响。

    就代码层面上而言,是通过fork的返回值来区别两个进程的。对于父进程,直接返回的是子进程的进程ID,这很好理解,因为父进程通常都会fork出不止一个子进程,所以知道子进程的进程号是很有必要的,相对地,子进程的返回值则是0,因为它只需要自己就可以了,因为其返回值是0,所以若是有必要的话,子进程可以使用getpid()来得到自身的pid,也可以调用getppid来获取到父进程的pid。

    进程创建之后的调用

    关于fork函数调用完 之后的函数执行顺序(即谁先被cpu调度),需要知道的就是,这个是无法确定的,这个是很好理解的,因为你无法确认cpu的指令执行进度,在这种时候,很容易出现 ”竞争条件“的错误,这是由内核根据系统当时的负载而做出的调度决定,因而,很难进行调试 。若是在这个时候,需要对执行顺序进行控制,有以下的方法:

    • 可以在fork执行完成之后,让父进程执行sleep函数,以此来确保子进程可以获取到被先执行的机会,从而将执行顺序给固定下来,当然从理论上讲的话,这种方法不是百分之百有用的。

    • 利用同步来进行同步,其中包含信号量,文件锁,进程间pipe等。

    关于fork之后,是子进程先执行,还是父进程先执行,其实各有各的理由,若是父进程先执行,那么父进程依旧会为子进程复制那些修改后的数据,然而子进程一旦获得调度,执行exec,之前的复制工作就纯粹是浪费。反过来,若是子进程先执行,在这时,父进程这是处于cpu活跃中的状态,让其挂起则是低效率的。

    虽然这么说,但是在应用程序来说,无乱哪一个进程先执行,影响都不大。

    进程的终止

    进程的终止,主要是有以下两种方式:

    • 一种为异常,它是由接收某一信号而引起的,该信号的默认动作就是终止当前线程,同时可能产生core dump文件。
    • 当然,同样能够去正常终止线程,此时需要调用以下函数:
    #include <unistd.h>
    void _exit(int status);

    该函数中的status值定义了终止状态值,父进程可以调用wait()来获取这个值。按照惯例,当返回值为0时,就表示success,而非0,这是失败,具体的失败值需要具体定义。

    • 值得一提的是,对于进程的终止还有一种方式,那就是在main函数中进行返回,其实在 此处返回最终执行的依然是exit函数。

    以上一直在说函数:_exit(),但是通常情况下,程序一般不会直接执行该函数,而是会执行库函数:exit()。

    该函数主要是做了以下步骤的工作:

    • 调用退出程序(通过atexit(),on_exit()注册进去的),其执行顺序和其注册顺序相反,这很好理解,越早注册,那么需要进行的清理等操作就越基础一些。
    • 刷新stdio的缓冲区
    • 最后才是使用之前一直提到的函数_exit()

    这里需要说明下,这个注册进去的退出程序是由程序员自己所定义的内容,执行程序员想要的回收相关工作。

    还需要注意的是,这个退出程序只有在正常退出情况下才会执行,而在异常情况下,则不会执行,这个就很好理解了, 这个只调用库函数时才会调用。

    监控子进程

    有一种情况,那就是父进程需要知道子进程在何时改变了状态,在Linux主要靠以下技术来进行监控:

    • 系统调用:wait()
    • 信号 : SIGCHLD

    系统调用的函数声明如下;

    #include <sys/wait.h>
    pid_t wait(int *status);

    这个函数的行为主要如下:

    • 若是之前并没有子进程被终止,那么调用将一直阻塞,直至某个子进程被终止了,如果调用时已经有子进程被终止了,wait()会立刻返回
    • 若是status不为空,那么子进程如何终止的信息通过status指向整型变量返回。
    • 内核会为父进程下所有的子进程的运行总量追加cpu时间以及资源使用数据

    僵尸进程与孤儿进程

    大家都知道,父进程与子进程的生命周期一般都是不同的,它们长短不一。这会有以下几个问题:
    * 谁是孤儿进程的父进程?答案是所有进程之父,进程id为1的init进程会接管孤儿进程,换言之,某一进程的父进程终止之后,对其使用getppid会得到1.这也是一个判断某一进程直接父进程是否还存在的方法。
    * 那么父进程在执行wait()之前,子进程就终止了,这是什么情况?这时候系统仍然允许父进程在之后某一时刻去执行wait,以此来确定子进程是如何结束的。在这种情况下,即父进程未执行wait,内核会将进程转化为僵尸进程,换句话说,系统会将子进程的大部分资源释放,仅仅在内核进程表中保存一条记录,里面包含了子进程id,终止状态,资源使用数等信息。僵尸进程之所以叫僵尸进程,原因在于它无法使用信号来杀死,这可以确保父进程总是可以执行wait。

    但是有一个问题,若是父进程创建了子进程,然后并没有执行wait,那么内核进程表将会永远为该进程保留这么一条记录,若是大量的僵尸进程存在,势必会填满内核进程表,从来阻碍新进程的创建。这时候唯一的方法就是杀死它们的父进程,然后将子进程交接给init进程,init进程会自动调用wait来清理这些进程

    SIGCHLD信号

    当子进程终止时,其父进程会收到SIGCHLD的信号,可以利用该信号设置信号处理程序来进行处理。

    展开全文
  • ps命令psa##关于当前环境的所有进程x| -A##所有进程f##显示进程从属关系e##显示进程调用环境工具的详细信息l##长列表显示进程的详细信息u##显示进程的用户信息-a##显示shell前台运行命令的进程,但不保函shell本身ps...

    一、进程定义

    进程就是cpu未完成的工作

    二。ps命令

    ps

    a##关于当前环境的所有进程

    x| -A##所有进程

    f##显示进程从属关系

    e##显示进程调用环境工具的详细信息

    l##长列表显示进程的详细信息

    u##显示进程的用户信息

    -a##显示shell前台运行命令的进程,但不保函shell本身

    34d809b51ae5869d02156f4bd051e051.png

    46a7100cfac8afef5bd49d6576dfedcd.png

    34c699be62f33eab34f382e6902b0aa9.png

    faeb0deebc78354eb7e4db8238f1bfa1.png

    68a8320bbe1420a4568078c937548d1f.png

    41d492a25d4c3c3e7cd75b98add43db8.png

    774152dc10a7900eb86ea3a8004ed5f2.png

    1b5377972cec4eb8cba30b79f85834dd.png

    d6945f288d05adea88a23512aaa405a5.png

    ps ax -o %cpu,%mem,user,group,comm,nice,pid,stat##指定显示进程的某些信息

    %cpu##显示进程cpu负载

    %mem##显示进程内存负载

    user##进程用户

    group##进程组

    comm##进程名称

    nice##进程优先级

    pid##进程的id

    stat##进程状态

    ####stat中显示的信息

    S##进程状态

    l##内存中有锁定空间

    N##优先级低

    +##前台运行

    s##顶级进程

    ps ax -o %cpu,comm --sort ##按照进程信息排序

    +##正序

    -##倒序

    %cpu##cpu负载排序

    %mem##内存负载

    0f1e6babb07d230c1801cf54a64b3a45.png

    ab81c6bc2bd865f3136c15a070951c6b.png

    a2aaf11d25156479f9d928e1a12fbe6b.png

    148b4775de92bdae9c59deefdfe65aa2.png

    2d84da72104e2a5b973365aae4415d80.png

    1978ca3f08c9141ef3de6b8b692a7687.png

    三、进程优先级

    1.进程的优先级范围

    -20~19

    2.优先级查看

    ps ax -o pid,nice,comm

    3.指定某个优先级开启进程

    nice -n 优先级数字进程名称

    nice -n -5 vim #开启vim并且指定程序优先级为-5

    4.改变进程优先级

    reince -n 优先级数字进程pid

    renice -n -5 1806##改变1806进程的优先级为-5

    root@desktop0 ~]# ps a -o pid,nice,comm

    PID  NI COMMAND

    614   0 Xorg

    1128   0 agetty

    1625   0 bash

    1785   0 vim

    1806  -5 vim

    1824  -5 vim

    1835   0 ps

    e859374ea3ffeefc762cf384d409ef8f.png

    2eb7ace56607e35c5a2fc9cbae7ab4e3.png

    0f1ae18a984d3e3e3b139e13408b42d4.png

    5.环境中进程的前后台调用####

    jobs##查看被打入环境后台的进程

    ctrl+z##把占用终端的进程打入后台

    fg jobsnum##把后台进程调回前台

    bg jobsnum##把后台暂停的进程运行

    comm #让命令直接在后台运行

    167f17626553197e3313760b6f4cc90f.png

    ce841afae83c37ab13d4ff63a77022db.png

    f9c16e199ffe6ef702247969614d39f4.png

    5ebede21ccdf491b09ce520ca7304114.png

    c6bb539bbb9fa8d4398971bc5a9945e9.png

    6.进程信号####

    ◆常用信号等级

    1##进程重新加载配置

    2##删除进程在内存中的数据

    3##删除鼠标在内存中的数据

    9##强行结束单个进程(不能被阻塞)

    15##正常关闭进程(可能会被阻塞)

    18##运行暂停的进程

    19##暂停某个进程(不能被阻塞)

    20##把进程打入后台(可以被阻塞)

    man 7 signal##查看信号详细信息

    kill -信号 进程pid

    killall -信号进程名字

    pkill-u student -信号

    52e8007cf6cf45bbb78dd88548c80755.png

    5c236782b6c75d2877e83bba23c5a823.png

    四、用户登陆审记

    1.w##查看使用系统的当前用户有那些

    w -f##-f查看使用地点

    2.last##查看用户登陆成功历史

    3.lastb##查看用户登陆未成功历史

    五、top命令

    top##监控系统负载工具

    s: 修改进程刷新间隔时间

    m: 根据内存占有率进行排序

    c: 根据 cpu 占有率进行排序

    u: 后面输入用户名 , 用来查看该用户发起的所有进程

    k: 后面跟要作用的进程 pid, 和发起的信号 (eg:9,15,20) 用来

    给某个进程发起一信号

    q: 退出进程查看界面

    h: 显示 top 命令的帮助

    99d16769094180fa35f53bbfda46e867.png

    ff64504b219b91f67b2ccbacfbaa613a.png

    86005bb13783b6a80b77e2224d26e334.png

    补充一些常用进程及应用

    SIGHUP     终止进程     终端线路挂断

    SIGINT     终止进程     中断进程

    SIGQUIT   建立CORE文件终止进程,并且生成core文件

    SIGILL   建立CORE文件       非法指令

    SIGTRAP   建立CORE文件       跟踪自陷

    SIGBUS   建立CORE文件       总线错误

    SIGSEGV   建立CORE文件       段非法错误

    SIGFPE   建立CORE文件       浮点异常

    SIGIOT   建立CORE文件       执行I/O自陷

    SIGKILL   终止进程     杀死进程

    SIGPIPE   终止进程     向一个没有读进程的管道写数据

    SIGALARM   终止进程     计时器到时

    SIGTERM   终止进程     软件终止信号

    SIGSTOP   停止进程     非终端来的停止信号

    SIGTSTP   停止进程     终端来的停止信号

    SIGCONT   忽略信号     继续执行一个停止的进程

    SIGURG   忽略信号     I/O紧急信号

    SIGIO     忽略信号     描述符上可以进行I/O

    SIGCHLD   忽略信号     当子进程停止或退出时通知父进程

    SIGTTOU   停止进程     后台进程写终端

    SIGTTIN   停止进程     后台进程读终端

    SIGXGPU   终止进程     CPU时限超时

    SIGXFSZ   终止进程     文件长度过长

    SIGWINCH   忽略信号     窗口大小发生变化

    SIGPROF   终止进程     统计分布图用计时器到时

    SIGUSR1   终止进程     用户定义信号1

    SIGUSR2   终止进程     用户定义信号2

    SIGVTALRM 终止进程     虚拟计时器到时

    1) SIGHUP

    本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控

    制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端

    不再关联.

    2) SIGINT

    程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出

    3)

    SIGQUIT 和SIGINT类似, 但由QUIT字符(通常是Ctrl-)来控制. 进程在因收到

    SIGQUIT退出时会产生core文件, 在这个意义上类似于一个程序错误信

    号.

    4)

    SIGILL 执行了非法指令. 通常是因为可执行文件本身出现错误, 或者试图执行

    数据段. 堆栈溢出时也有可能产生这个信号.

    5)

    SIGTRAP 由断点指令或其它trap指令产生. 由debugger使用.

    6)

    SIGABRT 程序自己发现错误并调用abort时产生.

    6)

    SIGIOT 在PDP-11上由iot指令产生, 在其它机器上和SIGABRT一样.

    7)

    SIGBUS 非法地址, 包括内存地址对齐(alignment)出错. eg: 访问一个四个字长

    的整数, 但其地址不是4的倍数.

    8)

    SIGFPE 在发生致命的算术运算错误时发出. 不仅包括浮点运算错误, 还包括溢

    出及除数为0等其它所有的算术的错误.

    9)

    SIGKILL 用来立即结束程序的运行. 本信号不能被阻塞, 处理和忽略.

    10)

    SIGUSR1 留给用户使用

    11)

    SIGSEGV 试图访问未分配给自己的内存, 或试图往没有写权限的内存地址写数据.

    12)

    SIGUSR2 留给用户使用

    13)

    SIGPIPE Broken pipe

    14)

    SIGALRM 时钟定时信号, 计算的是实际的时间或时钟时间. alarm函数使用该

    信号.

    15)

    SIGTERM 程序结束(terminate)信号, 与SIGKILL不同的是该信号可以被阻塞和

    处理. 通常用来要求程序自己正常退出. shell命令kill缺省产生这

    个信号.

    17)

    SIGCHLD 子进程结束时, 父进程会收到这个信号.

    18)

    SIGCONT 让一个停止(stopped)的进程继续执行. 本信号不能被阻塞. 可以用

    一个handler来让程序在由stopped状态变为继续执行时完成特定的

    工作. 例如, 重新显示提示符

    19)

    SIGSTOP 停止(stopped)进程的执行. 注意它和terminate以及interrupt的区别:

    该进程还未结束, 只是暂停执行. 本信号不能被阻塞, 处理或忽略.

    20)

    SIGTSTP 停止进程的运行, 但该信号可以被处理和忽略. 用户键入SUSP字符时

    (通常是Ctrl-Z)发出这个信号

    21)

    SIGTTIN 当后台作业要从用户终端读数据时, 该作业中的所有进程会收到SIGTTIN

    信号. 缺省时这些进程会停止执行.

    22)

    SIGTTOU 类似于SIGTTIN, 但在写终端(或修改终端模式)时收到.

    23)

    SIGURG 有"紧急"数据或out-of-band数据到达socket时产生.

    24)

    SIGXCPU 超过CPU时间资源限制. 这个限制可以由getrlimit/setrlimit来读取/

    改变

    25)

    SIGXFSZ 超过文件大小资源限制.

    26)

    SIGVTALRM 虚拟时钟信号. 类似于SIGALRM, 但是计算的是该进程占用的CPU时间.

    27)

    SIGPROF 类似于SIGALRM/SIGVTALRM, 但包括该进程用的CPU时间以及系统调用的

    时间.

    28)

    SIGWINCH 窗口大小改变时发出.

    29)

    SIGIO 文件描述符准备就绪, 可以开始进行输入/输出操作.

    30)

    SIGPWR Power failure

    有 两个信号可以停止进程:SIGTERM和SIGKILL。 SIGTERM比较友好,进程能捕捉这个信号,根据您的需要来关闭程序。在关闭程序之前,您可以结束打开的记录文件和完成正在做的任务。在某些情况下,假 如进程正在进行作业而且不能中断,那么进程可以忽略这个SIGTERM信号。

    对于SIGKILL信号,进程是不能忽略的。这是一个 “我不管您在做什么,立刻停止”的信号。假如您发送SIGKILL信号给进程,Linux就将进程停止在那里

    展开全文
  • 本意是希望通过父进程创建两个进程,但是不知道为什么不停创建client,代码如下,希望有时间的帮忙看一下,十分感谢! #include #include #include #include #include #include #include #include #include ...
  • Linux进程管理

    2018-11-05 18:41:46
    a ##关于当前环境的所有进程 x| -A ##所有进程 f ##显示进程从属关系 e ##显示进程调用环境工具的详细信息 l ##长列表显示进程的详细信 ps ax -o %cpu,%mem,user,group,comm,nice,pid,stat ##指定显示进程的...

    ####1.进程定义####
    进程就是cpu未完成的工作

    ####2.ps命令####
    连接虚拟机
    在这里插入图片描述
    ps
    a ##关于当前环境的所有进程
    在这里插入图片描述
    x| -A ##所有进程
    在这里插入图片描述
    f ##显示进程从属关系
    在这里插入图片描述
    e ##显示进程调用环境工具的详细信息
    在这里插入图片描述
    l ##长列表显示进程的详细信
    在这里插入图片描述

    ps ax -o %cpu,%mem,user,group,comm,nice,pid,stat ##指定显示进程的某些信息
    %cpu ##显示进程cpu负载
    %mem ##显示进程内存负载
    user ##进程用户
    group ##进程组
    comm ##进程名称
    nice ##进程优先级
    pid ##进程的id
    stat ##进程状态
    在这里插入图片描述
    在这里插入图片描述
    ####stat中显示的信息
    S ##进程状态
    l ##内存中有锁定空间
    N ##优先级低
    < ##优先级高

    • ##前台运行
      s ##顶级进程

    ps ax -o %cpu,comm --sort <+|-%cpu > <+|-%mem> ##按照进程信息排序
    +##正序
    -##倒序
    %cpu ##cpu负载排序
    在这里插入图片描述
    %mem ##内存负载
    在这里插入图片描述

    ####3.进程优先级####
    1.进程的优先级范围
    -20~19

    2.优先级查看
    ps ax -o pid,nice,comm
    在这里插入图片描述

    3.指定某个优先级开启进程
    nice -n 优先级数字 进程名称

    nice -n -5 vim & ##开启vim并且指定程序优先级为-5
    在这里插入图片描述
    在这里插入图片描述

    4.改变进程优先级
    reince -n 优先级数字 进程pid
    renice -n -5 1867 ##改变1867进程的优先级为-5
    在这里插入图片描述
    在这里插入图片描述

    ####4.环境中进程的前后台调用####
    jobs ##查看被打入环境后台的进程
    ctrl+z ##把占用终端的进程打入后台
    在这里插入图片描述
    fg jobsnum ##把后台进程调回前台
    bg jobsnum ##把后台暂停的进程运行
    在这里插入图片描述
    comm & ##让命令直接在后台运行
    在这里插入图片描述

    ####5.进程信号####
    1.常用信号等级
    1 ##进程重新加载配置
    2 ##删除进程在内存中的数据
    3 ##删除鼠标在内存中的数据
    9 ##强行结束单个进程(不能被阻塞)
    15 ##正常关闭进程 (可能会被阻塞)
    18 ##运行暂停的进程
    19 ##暂停某个进程 (不能被阻塞)
    20 ##把进程打入后台 (可以被阻塞)
    man 7 signal ##查看信号详细信息

    kill -信号 进程pid
    killall -信号 进程名字
    pkill -u student -信号

    ####6.用户登陆审记####

    1
    w ##查看使用系统的当前用户有那些
    w -f ##-f查看使用地点
    在这里插入图片描述
    在这里插入图片描述

    2
    last ##查看用户登陆成功历史
    在这里插入图片描述
    3.
    lastb ##查看用户登陆未成功历史
    在这里插入图片描述

    ####7.top命令####
    top ##监控系统负载工具
    m : 根据内存占有率进行排序
    c : 根据 cpu 占有率进行排序
    u : 后面输入用户名 , 用来查看该用户发起的所有进程
    k : 后面跟要作用的进程 pid, 和发起的信号 (eg:9,15,20) 用来
    给某个进程发起一信号
    在这里插入图片描述
    在这里插入图片描述
    q : 退出进程查看界面
    h : 显示 top 命令的帮助
    在这里插入图片描述

    展开全文
  • man ls ----(会显示ls手册,关于ls说明 类似于help) 一、静态查看进程ps(静态:一瞬间的显示 不实时) 静态查看进程ps: [root@localhost tmp]# ps aux |head -2 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME ...
  • Linux进程的详解

    2018-11-14 23:45:57
    a ##关于当前环境的所有进程 x| -A ##所有进程 f ##显示进程从属关系 e ##显示进程调用环境工具的详细信息 l ##长列表显示进程的详细信息 ps ax -o %cpu,%mem,user,group,comm,nice,pid,stat ##指定显示进程的...
  • Linux进程详解教程

    2017-10-11 06:29:12
    ps命令psa##关于当前环境的所有进程x| -A##所有进程f##显示进程从属关系e##显示进程调用环境工具的详细信息l##长列表显示进程的详细信息u##显示进程的用户信息-a##显示shell前台运行命令的进程,但不保函shell本身ps...
  • linux ps -elf 查看进程获取进程id

    千次阅读 2020-05-30 15:39:53
    关于ps 指令,在部署应用程序到linux主机时候,会用到,如查询当前进程信息,比较常用的指令如下。 <1>获取java进程 进程组信息: ps -elf |grep java 如图: 上述:F : 程序的旗标 (flag),S : 程序的状态 ...
  • /proc下每个进程有一个目录,目录下的stat文件可以得到关于进程的信息,比如:# cat /proc/2122/stat2122 (sshd) S 6599 2122 2122 0 -1 8448 1110 217 0 1 20 3 12 0 15 0 1 0 242306177 8482816 592 4294967295 ...
  • psa ##关于当前环境的所有进程x| -A ##所有进程f ##显示进程从属关系e ##显示进程调用环境工具的详细信息l ##长列表显示进程的详细信息ps ax -o %cpu,%mem,user,group,comm,nice,pid,stat ##指定显示进程的某些信息%...
  • /proc下每个进程有一个目录,目录下的stat文件可以得到关于进程的信息,比如:# cat /proc/2122/stat2122 (sshd) S 6599 2122 2122 0 -1 8448 1110 217 0 1 20 3 12 0 15 0 1 0 242306177 8482816 592 4294967295 ...
  • 关于进程: ps 查询当前终端下运行的进程 ps aux 查看系统里所有的进程,前台的,后台的 USER 进程的用户 PID 进程的ID VSZ 虚拟内存大小 RSS 物理内存大小 TTY 所在的TTY,如果是问号?一般是在后台。...
  • 本帖最后由 Yong Huang 于 2015-3-16 08:53 编辑>...PR in top is the same as priority in /proc//stat. (This pseudo file doesn't have headers. You have to get to this field by check...
  • VIRT:virtual memory usage 虚拟内存 1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等 2、假如进程申请100m的内存,但实际只...4、关于库占用内存的情况,它只统计加载的库文件所占内存大小 SHR:sha
  • Linux系统上的/proc目录是一种文件系统,即proc文件系统,与其它常见的文件系统不同的是,/proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为内核与进程提供通信的接口。...
  • ps -aux:显示所有包含其他使用者的进程 在终端软件输入该命令显示结果如下: ps -aux的深入理解 从上述的图中,可以清晰的看到其输出格式是: USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND 且该指令...
  • Linux系统调用中关于文件的操作,需要包含一些头文件: #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> 1、文件描述符 文件描述符是一个非负整数...
  • 文章目录CPU数据内存数据方法一方法二 CPU数据 读取/proc/[pid]/stat里...关于/proc/[pid]/stat中具体每个数据的含义,请参考linux-man7 private double getCPUInfo() { double ret = 0.0; try { if (appStatFi...
  • 当父进程发现请求数 >= 子进程数时,父进程创建新的子进程,并把子进程数加1(当然子进程数有个预先上限);当父进程发现子进程数大于请求数加1时,父进程杀死多余的子进程。 总的来说,思想是让子进程accept并处理...
  • Linux /Unix 共享内存

    2010-08-19 14:00:40
    关于这个函数,要多说两句。 创建共享内存时,shmflg参数至少需要 IPC_CREAT | 权限标识,如果只有IPC_CREAT 则申请的地址都是k=0xffffffff,不能使用; 获取已创建的共享内存时,shmflg不要用IPC_CREAT(只能用创建...
  • 对于Linux系统,各种关于系统内核的活动信息都可以在/proc/stat文件中找到,该文件记录了自系统第一次启动以来的所有内核的相关数据,下面对文件内容各字段做一点说明: 这些数字指明了CPU执行不同的任务所消耗的...
  • Unix/Linux 编程实践教程.PDF

    千次下载 热门讨论 2010-09-03 18:34:12
    Unix/Linux 编程实践教程.PDF,作者:Bruce Molay(美),翻译:杨宗源、黄海涛,出版:清华大学出版社。 内容预览: 第一章 Unix 系统编程概述 1.1 介绍 1.2 什么是系统编程 1.2.1 简单的程序模型 1.2.2 系统...
  • 这篇博客中所写的脚本,在...1、利用vmstat工具监控CPU详细信息,然后基于/proc/stat计算CPU利用率进行监控,超过80报警并提取出占用cpu最高的前十进程。 vmstat是Linux系统监控工具,使用vmstat命令可以得到关于...
  • 首先 ps 看一下我的系统跑着哪些process$ ps auxUSERPID %CPU %MEMVSZRSS TTYSTAT STARTTIME COMMAND...czbug19800.01.7 180472 34416 ?SlFeb250:01 /usr/bin/yakuake...我拿 yakuake 这个小程序作例子。其中,关于...
  • 这篇博客中所写的脚本,在实际工作中并没有什么卵用,工作中并不会用到这种脚本去监控。不过自己写一遍,可以让初学者对CPU、内存...vmstat是Linux系统监控工具,使用vmstat命令可以得到关于进程、内存、内存分页、...
  • linux内核 0.11版本源码 带中文注释

    热门讨论 2009-08-31 15:10:21
    * 关于实时时钟更多的资料,那我很感兴趣。这些都是试探出来的,以及看了一些bios 程序,呵! */ #define CMOS_READ(addr) ({ \ // 这段宏读取CMOS 实时时钟信息。 outb_p (0x80 | addr, 0x70); \ // 0x70 ...
  • 1, 关于文件共享(一个进程两次打开同一个文件、两个进程打开同一个文件) 2,dup,dup2, fcntl 文件共享 一个进程打开两个文件 v节点信息存放的主要就是stat函数,i节点信息,如果打开同一个文件对v节点表是共享...

空空如也

空空如也

1 2
收藏数 38
精华内容 15
关键字:

linuxstat关于进程

linux 订阅