• linux 之进程基础 (二)、 Linux下进程管理命令


    2. linux 下进程管理命令

    linux下启动一个进程分为两类:

    • 手动启动
    • 调度启动(周期性启动)

    2.1 atd 服务

    atd 服务是一个守护进程,它提供定时的启动一个进程的服务。

    2.1.1 查看atd 服务是否开启的命令:
    ps -elf | grep atd
    
    2.1.2 启动atd 服务的命令
    /etc/init.d/atd start or restart
    

    2.2.3 at 命令(指定时刻执行相关进程)

    at 命令是使用atd 服务的命令。

    • at + 固定的时间格式:进入到 at模式下,指定在上述指定的时间内要执行的命令(程序)。
    • ctrl+d:在at模式下,可以通过 ctrl+d 退出at模式。
    • atq:查询当前的等待任务,被执行之后就不会显示。

    各种时间格式介绍如下

    2.2.3.1 HH:MM YYYY-MM-DD

    规定在某年某月的某一天的特殊时刻进行该项任务

     at 04:00 2009-03-17
    
    2.3.1.2 HH:MM[am|pm] + number [minutes|hours|days|weeks]

    规定在某个时间点再加多少时间后才进行该项任务

    at now + 5 minutes
    at 04:00pm + 3 days
    

    2.2 cron服务

    cron服务是一个守护进程,它提供周期性的启动一个进程的服务。

    2.2.1 cron 常用的指令

    创建一个任务时,需要在一个编辑器中编辑该任务。

    • select-editor : 修改编辑任务的编辑器。一般选择 2. /usr/bin/vim.basic。即,使用vim编辑器进行编辑。编辑结束后按照vim的退出命令退出即可。

    • crontab -e : 创建一个任务。

    • crontab -u :设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数 。

    • crontab -l :列出某个用户cron服务的详细内容 。

    • crontab -r :删除某个用户的cron服务 。

    • crontab -e :编辑某个用户的cron服务。

    2.2.2 编辑任务的规则
    *   *  *  *  *  command
    分 时 日 月 周 命令
    

    说明:5个星分别代表一个时间,而command 表示要执行的命令。
    5个星的取值如下:

    • 第1列表示分钟1~59 每分钟用*或者 */1表示
    • 第2列表示小时1~23(0表示0点)
    • 第3列表示日期1~31
    • 第4列表示月份1~12
    • 第5列标识号星期0~6(0表示星期天)

    注意:

    • 如果写为*, 表示每X。
    • 如果想定义间隔,在X后加"/"和间隔的数字。
    • "-“代表从某个数字到某个数字,”,"分开几个离散的数字。

    2.2.3 应用举例

     //每隔一分钟打印一下系统时间 。则在vim中编辑下述内容然后保存退出
     */1 * * * * date >> ~/t.log   
    //晚上11点到早上7点之间每两个小时,早上八点 打印下述内容。则在vim中编辑下述内容然后保存退出
    0 23-7/28 * * * echo "Have a good dream"  >>  /tmp/test.txt 
    

    2.3 其它命令

    • ps :列出当前那些进程的快照(当前时刻)。
    • ps -aux : 列出所有进程
    • top:Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top 的升级版 htop。
    • kill -l: 查看系统支持的信号。
    • kill -signalnum pid: 向进程发送指定的信号
    //向pid=4682的进程发送SIGSTOP信号暂停进程。
    kill -19 4682 
    
    • nice 指定要执行进程的优先级
    //以优先级6来运行a.out
    nice -n 6 ./a.out 
    
    • renice 优先级 pid :更改指定进程的优先级。
    //将9621进程的优先级改为10
    renice +10 9621 
    
    • jobs:查看当前有多少在后台运行的命令。
    • &:运行一个程序时,直接放到后台。 在执行进程的名字的末尾添加。
     $ ping 127.0.0.1 > /dev/null &
    
    • Ctrl-Z:将一个正在前台执行的进程放到后台,并且暂停
    • fg:将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用 fg N将选中的命令调出,N是通过jobs命令查到的后台正在执行的命令的序号[N] (不是pid)。
    • bg:将一个在后台暂停的命令,变成继续执行。如果后台中有多个命令,可以用bg N将选中的命令调出,N是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

    注意

    • 系统中运行的每个进程都有一个优先级(亦称“nice 值”),其范围从 -20 (最高优先级)到 19 (最低优先级)。优先级越高,其值越小。默认情况下,进程的优先级是 0 (“基本”调度优先级)。优先级比较大的进程(nice 值比较小,最低到 -20)相对优先级比较小的进程(直到19)将比较频繁地被调度运行,因此就拥有更多的进程周期。一般用户只能降低它们自己进程的优先级别,并限于 0 到 19之间。超级用户(root)可以将任何进程的优先级设定为任何值。top命令中,NI指的就是优先级。
    • 没有直接的命令可以将后台running的进程stop,必须要先把后台的进程通过fg调到前台,再用Ctrl+Z挂起后重新放回后台
  • 相关阅读:
    8位单片机可用的 mktime localtime函数
    【转载】linux获取mac地址
    【转载】openwrt框架分析
    JVM调优工具Arthas的使用
    Grafana监控JVM
    JAVA死锁排查-性能测试问题排查思路
    JVM的堆内存泄漏排查-性能测试
    性能测试之JVM的故障分析工具VisualVM
    性能测试之 JVM 异常说明和分析工具
    性能测试之 JVM 概念认识
  • 原文地址:https://www.cnblogs.com/lasnitch/p/12764132.html
Copyright © 2020-2023  润新知