Linux 入门笔记6. 进程管理入门

Linux 入门笔记6. 进程管理入门

1、进程监控

(1)ps

比如使用ps命令,监控python进程:ps -ef | grep python

这里写图片描述

这几列的含义分别为:UID、PID、PPID、C、STIME、TTY、TIME、CMD

含义
UID 用户ID
PID 进程ID
PPID 父进程ID
C CPU资源占用百分比
STIME 进程启动时间
TTY 进程使用的控制台
TIME 进程使用CPU的时间
CMD 所下达的指令


(2)top,与ps命令不同,top能实时监控进程状态

这里写图片描述


2、终止进程:kill

kill -9 1896

9表示终止信号类型,1896是进程ID

扫描二维码关注公众号,回复: 1625305 查看本文章

kill命令的工作流程是:首先项系统发送一个终止信号和终止进程ID,然后系统根基终止信号的类型和进程
,对该进程进行终止操作。

终止信号的类型有:

这里写图片描述

其中,常用的信号有:2、9、15等

  • kill -2 :表示结束进程,例如Ctrl + c就是发送了SIGINT
  • kill -9 :强制终止进程,,一般使用kill -9
  • kill -15 :kill默认发送的终止信号是15,进程会做释放资源等必要操作,然后再终止

这里写图片描述



3、任务调度进程crond

如果要执行周期性的任务,就需要使用crond。crond是linux下的守护进程,能够定期检查是否有要执行的任务,如果有,则自动执行该任务。

/etc/crontab是crond的配置文件,使用 more /etc/crontab查看crond文件的内容

这里写图片描述

定时任务的格式如下:minute hour day month week command

前几项表示时间,command表示要执行的命令。多条命令可以用”;”隔开。写好配置文件后,系统会定时地执行command中的命令。


4、crontab工具小例子:实现定时push到github的功能

(1)我们将自定义的crontab文件保存在/var/spool/cron/crontabs/目录下。

在该目录下,使用命令crontab -e新建一个定时任务(使用vim)。

为了测试需要,我写了一段python代码,这个代码能够向 test.txt 文件中写入当前的时间,test.py:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import datetime

def write_file(file):
    with open(file, 'a') as f:
        f.write(str(datetime.datetime.now()) + '\n')
    f.close()

file = 'test.txt'
write_file(file)

然后设置定时任务,每隔1分钟执行一次,在crontab中添加:

*/1 * * * * cd /home/lijialin/Desktop;python test.py

这里写图片描述

接下来去喝杯咖啡,几分钟后回来看看效果~

这里写图片描述

(2)既然能够自动执行写文件,说明自动push也是可行的,用下面的代码替换test.py中的内容:

#!/usr/bin/env python

import subprocess
import datetime

subprocess.call(["git", "add", "."])
subprocess.call(["git", "commit", "-m", "auto push at " + str(datetime.datetime.now())]) # 加上当前系统的时间
subprocess.call(["git", "push"]) # 执行push

经过实际测试,上述代码是可以实现自动push功能的。下面是github的截图:

这里写图片描述

参考自:http://blog.csdn.net/u010429424/article/details/76896918

猜你喜欢

转载自blog.csdn.net/u010429424/article/details/78467952