Linux——进程管理

目录

作业和进程的概念

程序与进程的关系

查看进程信息——ps,top

ps命令

top命令

设置进程的优先级——nice,renice

nice命令

renice命令

查看进程信息——pgrep,pstree

pgrep命令

pstree命令

切换进程——jobs,bg,fg

前台、后台作业

终止进程——kill

计划任务管理——at

计划任务管理——crontab

crontab任务的配置格式

添加crontab调度


作业和进程的概念

        Linux是一个多用户多任务的操作系统。

        多用户是指多个用户可以在同一时间使用计算机系统; 多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。

        为了完成这些任务,系统上同时运行着多个进程,正在执行的一个或多个相关进程称为一个作业。

程序与进程的关系

程序: 保存在硬盘、光盘等介质中的可执行代码和数据 是静态保存的代码。

进程:在CPU及内存中运行的程序代码 是动态执行的代码 父、子进程:每个进程可以创建一个或多个进程。

        进程与程序是有区别的进程不是程序,虽然它由程序产生。程序只是一个静态的指令集合,不占系统的运行资源:而进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程序。而且一个程序可以启动多个进程。
        进程:程序的动态执行过程;一个程序可以有多个进程;一个或多个相关进程有时也被称作一个作业

查看进程信息——ps,top

ps命令

用途:显示正在执行的进程统计信息

格式:常用:ps [选项]

常用命令选项

  • -A
  • -a:终端上的所有进程
  • -e:系统中的所有进程
  • -l:长格形式
  • -u:面向用户的格式
  • -x:后台进程的信息

PID:该进程在系统中的数字ID号,在当前系统中是唯一的;

top命令

用途:查看动态的进程排名信息

设置进程的优先级——nice,renice

nice命令

        是反应一个进程优先级状态的值,取值范围是-20至19,一共40个级别。 这个值越小,表示进程“优先级”越高,而值越大“优先级”越低。

        直接运行nice,显示当前程序的运行优先级;

格式:nice [-优先级] 命令

#nice
#0
#nice -n 21 nice

#19
#nice -5 ftp     #调整ftp进程的优先级为5

#nice --5 ftp    #调整ftp进程的优先级为-5

renice命令

对一个正在运行的进程进行nice值的调整。

格式:renice 优先级值 [选项] 命令

常用命令选项

  • -p:进程号所标识进程的优先级
  • -u:指定用户所启动进程的优先级
  • -g:群组

renice 8 -p 2896

查看进程信息——pgrep,pstree

pgrep命令

用途:根据特定条件查询进程PID信息

[root@localhost ~]# pgrep "init"

1

[root@localhost ~]# pgrep -l "log"

2538 syslogd

2541 klogd

3221 login 

pstree命令

用途:以树型结构显示各进程间的关系

[root@localhost ~]# pstree -aup

init,1  

├─acpid,2866  

├─atd,3060  

├─auditd,2516  

│   ├─python,2518 /sbin/audispd  

│   └─{auditd},2517  

├─automount,2842 ……

切换进程——jobs,bg,fg

显示作业命令

jobs -p 进程号      

jobs -l 进程号+作业号

ctrl+Z 挂起当前作业

ctrl+C 终止当前作业

     前台、后台作业

        前台和后台运行作业作业可以在前台,也可以在后台运行,在同时间只能有一个作业在前台运行。前台作业是指正对它进行交互操作的作业,它从键盘接受输入,并将输出送往屏幕。另一方面,后台作业不接受中断的输入。它们在运行时不需要交互操作,只是默默运行。

bg [作业号]     #前台→后台

fg  [作业号]     #后台→前台

将一个作业放到后台运行的一种方法是在命令后面加“&”字符,ex:$ yes >/dev/null &

终止进程——kill

kill -s 信号| -p 进程号

kill -l [信号]

kill 进程号

kill -9 用于强制终止

当使用作业号来标识作业时,在作业号前面要加“%”。若该作业的作业号为1,可用下面的命令
$ ki11 %1

kill用于终止指定PID号的进程

killall用于终止指定名称的所有进程

计划任务管理——at

 在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务

服务脚本名称:/etc/init.d/atd

设置格式:at  [HH:MM]  [yyyy-mm-dd]

[root@localhost ~]# service atd start

启动 atd:                                               [确定]

[root@localhost ~]# at 23:45

at> shutdown -h now

at> <EOT>

job 1 at 2009-09-14 23:45    # 按Ctrl+D键提交任务

[root@localhost ~]# atq 1      

2009-09-14 23:45 a root

计划任务管理——crontab

按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务

管理cron计划任务

编辑计划任务:crontab  -e  [-u  用户名]

查看计划任务:crontab  -l   [-u  用户名]

删除计划任务:crontab  -r   [-u  用户名]

ex:

[root@localhost root]# crontab -l -u jerry

55 23 * * 7  /bin/cp /etc/passwd /home/jerry/pwd.txt

[root@localhost root]# crontab -r -u jerry

[root@localhost root]# crontab -l -u jerry

no crontab for jerry

crontab任务的配置格式

时间数值的特殊表示方法

  • *    表示该范围内的任意时间
  • ,    表示间隔的多个不连续时间点
  • -    表示一个连续的时间范围
  • /    指定间隔的时间频率

应用示例

0  17  *  *  1-5        周一到周五每天17:00

30  8  *  *  1,3,5    每周一、三、五的8点30分

0  8-18/2  *  *  *    8点到18点之间每隔2小时

0  *  */3  *  *        每隔3天 

添加crontab调度

vi crontab -e

00 17 * * 5 tar -czf  /home/hellon/data /backup/hellen-data.tar.gz

示例1(root用户):

每天早上7:50自动开启sshd服务,22点50时关闭

50 7 * * * systemctl start sshd

50 22 * * * systemctl stop sshd

每隔5天清空一次FTP服务器公共目录/var/ftp/pub

* * */5 * * rm -rf /var/ftp/pub/*

每周六的7:30时,重新启动httpd服务

30 7 * * 6 restart httpd

每周一、三、五的17:30时,打包备份/etc/httpd目录

30 17 * * 1,3,5 tar -zcvf /backup/httpd_backup_$(date +\%Y\%m\%d).tar.gz /etc/httpd

示例2(jerry用户):

每周日晚上23:55时将“/etc/passwd”文件的内容复制到宿主目录中,保存为pwd.txt文件 

55 23 * * 7 cp /etc/passwd /home/jerry/pwd.txt

  • 17
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值