进程&任务计划

进程

一个程序被加载到内存当中运作,那么在内存内的那个数据就被称为进程(process)。

内核的功用:

进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等    
进程编号:pid,来标记各个进程  
task seruct:进程结构  
task list :数据结构方式  链表

第一个祖宗进程 init 1

进程优先级:

系统优先级:数字越小,优先级越高 (0-139)centos 5
各有140个运行队列和过期队列

0-98.99()centos6
 
 实时优先级:99-0 值越大优先级越高
 nice值:-20到19.对应系统优先级100-139或99

进程内存:

page frame 页框 储存页面数据 page 4k  
LRU  Least Recently Used 近期最少使用 算法,释放内存  物理地址空间和线性地址空间 MMU:Memory   Management   Unit负责转换线性和物理地址 TLB:Translation   Lookaside Buffer 翻译后备缓冲器,用于 保存虚拟地址和物理地址映射关系的缓存 

进程的查看和小工具:

pstree, ps, pidof, pgrep, top, htop,
glance, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup 等

pstree:树状进程信息左侧为父进程 右侧子进程。 有的父进程杀了 子进程会重新找新父进程

    [root@centos7 ~]#pstree
systemd─┬─ModemManager───2*[{ModemManager}]
       ├─NetworkManager─┬─dhclient
       │                └─2*[{NetworkManager}]
       ├─VGAuthService
       ├─2*[abrt-watch-log]
       ├─abrtd
       ├─accounts-daemon───2*[{accounts-daemon}]
       ├─agetty
       ├─alsactl
       ├─atd
       ├─auditd─┬─audispd─┬─sedispatch
       │        │         └─{audispd}
       │        └─{auditd}
       ├─automount───4*[{automount}]
       ├─avahi-daemon───avahi-daemon
       ├─chronyd
       ├─colord───2*[{colord}]
       ├─crond
[root@centos7 ~]#pstree -p  <== 显示程序识别码  
systemd(1)─┬─ModemManager(660)─┬─{ModemManager}(691)
          │                   └─{ModemManager}(718)
ps

显示进程状态快照
linux系统个进程的相关信息保存在/proc/pid目录下的各个文件中
ps aux :查看系统的所有的进程信息
ps -lA 所有系统的数据
ps axjf 进程树状态

-A 所有进程
-a 不与terminal 相关的进程
-u 有效用户
x 跟a一起使用
l pid
j 工作的格式
-f 更完整的输出。
常见选项:
 -C cmdlist 指定命令,多个命令用,分隔   
 -L 显示线程  
 -e: 显示所有进程,相当于-A   
 -f: 显示完整格式程序信息  
 -F: 显示更完整格式的进程信息   
 -H: 以进程层级格式显示进程相关信息   
 -u userlist 指定有效的用户ID或名称   
 -U userlist 指定真正的用户ID或名称   
 -g gid或groupname 指定有效的gid或组名称   
 -G gid或groupname 指定真正的gid或组名称   
 -p pid 显示指pid的进程   
 --ppid pid 显示属于pid的子进程   
 -M  显示SELinux信息,相当于Z
[root@centos7 ~]#ps -l   <== 仅显示与自己相关的进程 与自己bash相关的
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0   1468   1191  0  80   0 - 29611 do_wai pts/1    00:00:00 bash
0 R     0   5913   1468  0  80   0 - 38300 -      pts/1    00:00:00 ps  
上面对应的标示符号讲解:
F:进程标示 权限号码:4为root   1为这个子进程可以进行复制 无法实际执行。  

S:进程的状态:R 进程运行中,S 该进程在睡眠,可唤醒。D 不可被唤醒的睡眠状态,可能在等待io设备的情况。T 停止状态,可能在工作控制台(后台暂停)或出错的状态

Z 僵尸状态 结束的进程 五大被删除出内存外

UID/PID/PPID:此进程被该id所拥有/进程的pid号码/此进程的父进程pid号码。

C:代表cpu的使用率

PRL/NI:代表此进程的执行优先级,数值越小表示该进程越快的被cpu处理

ADDR/SZ/WCHAN:与内存有关,
    addr kernel function:指出该进程在内存的哪个部分,如果是个running的进程,一般显示-。
    SZ:代表此进程用掉多少内存
    /WCHAN 表示该进程是否在运行,若为 - 表示在运行。

TTY: 登陆者的终端位置,远程登陆则使用动态端口接口 pts/n

TIME :使用掉的cpu时间 此进程花费cpu的时间

CMD: command缩写 造成此程序的触发进程的命令为何。

杀进城:

[root@centos7 ~]#killall  ping  <==关闭这个进程ping

计划任务

并行运行
并行命令:
一种:
im下编辑 每行命令 后面加&
二中:
[root@centos7 bin]#{ ping 127.1 & ping 127.2 & ping 127.3 & }
[1] 2814
[2] 2815
[3] 2816

同时运行多个进程,提高效率
方法1 vi all.sh f1.sh& f2.sh& f3.sh&
方法2 (f1.sh&)?f2.sh&)?f3.sh&)
方法3 { f1.sh& f2.sh& f3.sh& }

三:并行执行

{
echo "11111111"
echo "222222222“
}&
{
echo "3333333"
echo "44444444"                                                                                                 
}

at

建立一个计划任务:
at
-V 显示版本号
-t 时间格式
-L 列出指定列队中等待运行的作业;想打韩国与 相当于atq
-d 删除指定的作业任务
-c 查看作业内容
-f /path/file 制定的文件中读取任务

-m 当任务完成时 给用户发邮件  

*重启并不影响计划任务执行 已经保存的文件里

at任务

TIME:定义出什么时候进行 at 这项任务的时间 HH:MM   [YYYY-mm-dd] noon, midnight, teatime(4pm) tomorrow now+#{minutes,hours,days, OR weeks}

at时间格式

HH:MM  02:00 在今日的 HH:MM 进行,若该时刻已过,则明天此时执行任务     
HH:MM YYYY-MM-DD   02:00 2016-09-20 规定在某年某月的某一天的特殊时刻进行该项任务 HH:MM[am|pm] [Month] [Date] 04pm March 17 17:20 tomorrow   
HH:MM[am|pm] + number [minutes|hours|days|weeks] 
在某个时间点再加几个时间后才进行该项任务 now + 5 min 02pm + 3 days

at任务

执行方式: 1)交互式 2)输入重定向 3)at –f 文件   
依赖与atd服务,需要启动才能实现at任务   
at队列存放在/var/spool/at目录中   
/etc/at.{allow,deny}控制用户是否能执行at任务 
白名单:/etc/at.allow 默认不存在,只有该文件中的用户才能执行at命令 
黑名单:/etc/at.deny 默认存在,拒绝该文件中用户执行at命令,而没有在 at.deny 文件中的使用者则可执行 如果两个文件都不存在,只有 root 可以执行 at 命令
[root@centos7 ~]#at 21:00               <== 定义时间 
at>  shutdown -h now                    <== 写命令
at> <EOT>                               <== 退出保存 按ctrl +d键  +c不保存
job 1 at Tue Oct 30 21:00:00 2018       <== 生效时间


[root@centos7 ~]#at -l                  <== 查看等待执行的计划任务
1	Tue Oct 30 21:00:00 2018 a root     <== 1代表作业编号
[root@centos7 bin]#at -c 2              <== 查看第二个计划任务 的详细信息

确认at服务已经启动:

[root@centos7 bin]#systemctl is-enabled atd
enabled                                 <== enabled 表示该服务启动ok

centos6 确认方法:

[root@centos7 bin]#chkconfig --list atd
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值