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
9表示终止信号类型,1896是进程ID
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:
然后设置定时任务,每隔1分钟执行一次,在crontab中添加:
接下来去喝杯咖啡,几分钟后回来看看效果~
(2)既然能够自动执行写文件,说明自动push也是可行的,用下面的代码替换test.py中的内容:
经过实际测试,上述代码是可以实现自动push功能的。下面是github的截图: