博客
关于我
进程和计划任务管理
阅读量:381 次
发布时间:2019-03-05

本文共 1847 字,大约阅读时间需要 6 分钟。

进程和计划任务管理

程序与进程的关系

程序是存储在硬盘、光盘等介质中的可执行代码和数据文件中,而进程则是在CPU及内存中运行的程序代码。程序是静态保存的代码,进程则是动态执行的代码。每个程序可以创建一个或多个进程,进程通过父、子进程的关系相互关联。进程运行的最小执行单元是线程。

进程的五种状态

进程在运行过程中可以处于以下五种状态:

  • 运行(Running):进程正在运行或在运行队列中等待。
  • 中断(Interruptible):进程在休眠状态,等待某个条件的形成或接受到信号。
  • 不可中断(Non-Interruptible):进程收到信号但无法唤醒,必须等待中断发生才能继续执行。
  • 僵死(Zombie):进程已终止,但进程描述符仍然存在,直到父进程调用wait4()系统调用后才会释放。
  • 停止(Stopped):进程收到SIGSTOPSIGSTPSIGTINSIGTOU信号。
  • 查看进程信息

    方法一:ps aux

    ps aux命令用于查看系统中的进程信息,参数解释如下:

    • a:显示终端上的所有进程。
    • u:显示进程的用户。
    • x:显示所有终端的进程。

    方法二:ps -elf

    ps -elf命令用于查看详细的进程信息,参数解释如下:

    • -e:显示系统内的所有进程信息。
    • -l:使用长格式显示进程信息。
    • -f:使用完整的格式显示进程信息。

    查看进程信息

    使用top命令可以实时查看系统资源使用情况及其进程信息,常用操作包括:

    • P键:按PID从小到大排序。
    • M键:按物理内存大小排序。
    • N键:按启动时间排序。
    • c键:切换显示命令名称和完整命令行。
    • k键:输入PID号终止进程。
    • q键:退出top程序。

    进程信息区各列解释

    列名 说明
    PID 进程ID
    USER 进程所有者的用户名
    PR 优先级
    NI 谦让度值
    VIRT 虚拟内存总量(KB)
    RES 物理内存使用量(KB)
    SHR 共享内存使用量(KB)
    S 进程状态
    %CPU 上次更新到现在的CPU百分比
    %MEM 物理内存百分比
    TIME+ 进程使用的CPU时间总计
    COMMAND 进程的启动命令或命令行

    查看进程树

    使用pstree命令可以以树形结构列出进程信息,常用参数包括:

    • -a:显示完整信息。
    • -u:列出对应用户名。
    • -p:列出对应PID号。

    进程的启动方式

    进程的启动方式主要有以下几种:

  • 手工启动

    • 前台启动:直接执行程序命令,不加&符号。
    • 后台启动:在命令行尾加上&符号。
  • 调度启动

    • 使用at命令设置一次性计划任务。
    • 使用crontab命令设置周期性计划任务。
  • 进程的前后台调度

    • 使用Ctrl+z组合键将当前程序挂起。
    • 使用jobs命令查看后台任务列表。
    • 使用fg命令将后台进程恢复到前台运行。
  • 终止进程

    方法一:使用kill命令

    • kill -9 PID:强制终止指定PID号的进程。

    方法二:使用pkill命令

    • pkill -f "进程名称":根据进程名称或描述终止相应的进程。
    • pkill -u 用户名:根据用户名终止该用户的所有进程。

    计划任务管理

    使用at命令设置一次性计划任务

    at命令用于设置一次性计划任务,操作步骤如下:

  • 指定任务时间:at HH:MM
  • 指定日期:at HH:MM yyyy-mm-dd
  • 输入任务命令:每行输入一个命令。
  • 按下Ctrl+D提交任务。
  • 使用crontab管理周期性计划任务

    crontab命令用于设置周期性计划任务,配置文件位于/etc/crontab,用户定义的任务位于/var/spool/cron/用户名。常用命令包括:

    • crontab -e:编辑计划任务。
    • crontab -l:查看计划任务。
    • crontab -r:删除计划任务。

    常用配置示例

    以下是crontab配置的常见格式:

    分钟   小时   日期   月份   周   命令0-59  0-23  1-31  1-12  0-7  /usr/bin/script*/5 * * * * /usr/bin/another_script

    示例:

    • 每分钟执行一次:*/1 * * * ** * * * *
    • 每5分钟执行一次:*/5 * * * ** * * * *
    • 每小时执行一次:0 * * * **/1 * * * *
    • 每天上午7点执行:0 7 * * *
    • 每天上午7点10分执行:10 7 * * *

    通过合理配置crontab文件,可以轻松实现系统的自动化任务调度。

    转载地址:http://wbeg.baihongyu.com/

    你可能感兴趣的文章
    Nodemon 深入解析与使用
    查看>>
    node不是内部命令时配置node环境变量
    查看>>
    node中fs模块之文件操作
    查看>>
    Node中同步与异步的方式读取文件
    查看>>
    Node中的Http模块和Url模块的使用
    查看>>
    Node中自启动工具supervisor的使用
    查看>>
    Node入门之创建第一个HelloNode
    查看>>
    node全局对象 文件系统
    查看>>
    Node出错导致运行崩溃的解决方案
    查看>>
    Node响应中文时解决乱码问题
    查看>>
    node基础(二)_模块以及处理乱码问题
    查看>>
    node安装及配置之windows版
    查看>>
    Node实现小爬虫
    查看>>
    Node提示:error code Z_BUF_ERROR,error error -5,error zlib:unexpected end of file
    查看>>
    Node提示:npm does not support Node.js v12.16.3
    查看>>
    Node搭建静态资源服务器时后缀名与响应头映射关系的Json文件
    查看>>
    Node服务在断开SSH后停止运行解决方案(创建守护进程)
    查看>>
    node模块化
    查看>>
    node环境下使用import引入外部文件出错
    查看>>
    node编译程序内存溢出
    查看>>