Linux笔记9-管理前后台进程、任务的定时和延期
进程管理:&符号、nohup命令、Ctrl+Z、jobs命令、bg命令、fg命令
定时管理:at命令、atq命令、atrm命令、sleep命令、&&与||符号、crontab软件
&符号:在后台运行程序,在要运行的命令最后加上&符号。在当前终端中运行。
nohup命令:使进程与终端分离。
Ctrl+Z:转到后台,并暂停运行
bg命令:使进程转到后台。假如命令已经在后台并且暂停着,那么bg命令会将其状态改为运行。不加任何参数,bg命令会默认作用于最近的一个后台进程;如果后加%1,%2(直接1、2)这样的参数,则作用于指定标号的进程。
jobs命令:显示后台进程状态
fg命令:使进程转为前台运行。不加任何参数,bg命令会默认作用于最近的一个后台进程;如果后面加%1,%2(直接1、2)这样的参数,则作用于指定标号的进程。
5种常见的进程状态
运行(正在运行或在运行队列中等待),对应的状态码为R,(runnable)
中断(休眠中,受阻),对应的状态码为S,(sleeping)
不可中断(进程不响应系统异步信号,kill也不能中夺冠它),对应的状态码是D
僵死(进程已终止,但进程描述符依然存在,直到父进程调用wait4()系统函数后将进程释放),对应Z
停止(进程收到SIGSTOP,SIGSTP,SIGTIN,SIGTOU等停止信号后停止工作),对应的状态码是T
date命令:调节时间,修改显示格式,修改时间等。
at命令:延时执行一个程序。只能执行一次。在指定时刻执行程序,先用at命令后接想要程序执行的时刻,再输入指定命令。结束输入并退出at命令,使用Ctrl+D组合键,此时显示“EOT“;使用美式日期月/日/年,如12/10/19;
在指定间隔之后执行程序:at now +10 minutes;
atq命令:列出正等待执行的at任务,q表示queue队列;
atrm命令:删除正在等待执行的at任务,re表示remove删除,后接任务的编号;
sleep命令:休息一会;sleep后默认单位为秒,也可指定为m、h。举例:touch file.txt;sleep 10;rm file.txt
&&与||和分号一样,用于分隔两个命令,使目标命令依次执行
&&:&&符号前的命令执行成功,才会执行后面的命令
||:||符号前的命令执行失败,才会执行后面的命令
前期配置工作-指定Nano编辑器
修改.bashrc文件,让Nano成为默认的文本编辑器,CentOS里一般默认大的文本编辑器使vi,
把一句话加入到.bashrc文件中:echo “export EDITOR=nano” >> ~/.bashrc,
运行以下命令使改动立即生效:source ~/.bashrc
crontab命令:定时执行程序
at命令,只能执行某个(某几个)命令一次,crontab却可以重复执行命令;
在CentOS(Red Hat一族)中安装Crontab:
sudo yum install vixie-cron crontabs #安装Crontab
chkconfig crond on #设为开机启动
servive crond start #启动
在Ubuntu(Debian一族)中安装Crontab:
sudo apt install cron #安装Crontab
servive cron restart或者restart cron #重启Crontab
crontab具体使用
crontab其实是一个命令,用于读取和修改名为crontab的文件。crontab文件包含了要定时执行的程序列表,以及执行的时刻。
crontab命令:用于修改crontab文件
cron命令:用于实际执行定时的程序
crontab三个主要参数:crontab-l显示文件,crontab -e修改文件,crontab -r删除文件。
每一行的格式m h dom mon dow command,举例:10 22 * * * touch ~/file【txt路径最好用绝对路径】