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挂起后重新放回后台
posted @ 2020-03-24 23:54  江南又一春  阅读(297)  评论(0编辑  收藏  举报