未分类 · 2023年3月26日 0

linux基础学习笔记三:任务、进程、服务管理【】

4.1 定时任务

linux定时任务由crond这个服务管理,Crond每分钟执行三个位置的脚本:

  • /etc/crontab:系统相关的,由root直接编写
  • /etc/cron.d/*:自定义的软件相关
  • /var/spool/cron/*:用户用crontab -e命令编写的定时任务。

定时任务执行的日志位于:/var/log/cron
关于crontab -e日期编写:,表示多个时间,-表示一段时间,*/5表示每5个时间单位做一次。

4.2 任务管理

在一个shell中,如果任务都在前台执行,那一个shell只能执行一个任务,效率低下。一种方式是将任务放到【后台】执行,但注意这里的后台指的是shell的后台,也是shell的子进程,并非是系统的后台。

  • &:只需在命令后面加入这个符号,即可转入后台执行,但是stdout和stderr依然会输出到前台命令行上。在执行结束后,也会有任务结束的提示。
  • jobs:任务执行时,会产生一个job id,注意不是pid,上述后台执行时,会产生类似[1] 19888类似的输出,表示的就是job id和pid。jobs这个命令就是显示所有后台任务的状态和对应的命令,参数-l会额外显示pid。
  • [ctrl]+z:这个热键可以将前台正在执行的任务暂停,放到后台去;
  • fg %job id:这个命令将一个后台任务拿到前台来继续执行;
  • bg %job id:这个命令将一个后台任务在后台继续执行,相当于给命令后面加了一个&
  • kill %job id:可以杀掉一个任务,常见的参数有-1重启进程,-9强制杀掉,-19暂停运行([ctrl]+z

    • killall bash:可以杀掉用bash启动的所有任务,通常用来终止任务;
    • 但注意kill并不是杀掉的意思,而是向进程发送信号。
  • nohup:上面我们提到,即使放到后台,也是shell的后台,一旦shell关掉了,所有的任务也就都关了。为了避免和shell关联,可以用nohup。但是注意nohup是不支持shell内置命令的。

4.3 进程管理

进程有五种状态:R:running(运行),S:sleeping(挂起),D:阻塞,T:后台暂停状态或者在跟踪状态,Z:僵尸状态。

  • ps -l:当前shell的相关进程,ps aux查看所有运行的进程。
  • pstree -p:进程树

    • 能观察到所有进程都是1号进程systemd的子进程。
  • top

    • f调显示的项目;
    • 1:查看各个CPU的负载情况;
    • -p pid:参数可以查看某一个进程的情况
    • eE用来调内存单位;
    • M按照内存使用排序,P按照CPU使用排序;
    • VIRT:进程申请使用的内存,不是实际使用的,意义不大;
    • RES:进程的常驻内存,包含SHR,但不包含SWAP
    • SHR:多核之间的共享内存,通常是共享库函数;
    • TIME+:累计CPU时间,注意不是运行时间,是占用CPU的时间,多核程序会累计在多个CPU上的时间。
    • 系统负载和每秒内运行的任务数相关。
  • 进程的优先级:进程一般都有一个优先级,由linux计算,值越小越先执行,具体来说会有一个PR值,由系统设置无法改动,还有一个NICE值(NI),可以由用户微调。使用nicerenice命令可以调整。
  • free -m查看内存信息
  • netstat:查看网络信息,分成两部分,一部分是真的网络连接(type为tcp/udp),一部分是本机的进程间通信(IPC,type为unix):

    • 网络连接:
      • Recv-Q:接收队列中的消息包数量,Send-Q:发送队列
    • 本地socke
      • RefCnt:关联的进程数;
      • Path:关联的进程路径
    • netstat -ltunp:列出正在侦听的网络连接。
  • dmseg:里面存在内核启动时的信息;
  • vmstat:能对当下系统资源做监控。
  • 有关/proc目录下的信息:
    • 每个进程对应的pid都有一个目录,存储着进程相关信息。比较典型的cmdline存储启动命令,environ存储环境变量。
    • /proc下面还存储着相当多的其他信息,包括cpu,内核版本,文件系统,挂在分区,驱动,等等,是很多命令读取的来源地。
  • fuser -v:可以通过文件找出使用该文件的所有进程;
  • lsof:查看进程使用的文件和设备,侦听的端口。

    • 参数-p:指定pid;参数-c指定命令的名称,支持正则表达式。
    • lsof + 文件名:也可以查看打开该文件的进程,+d表示不递归查询目录,+D则会递归查询。
    • lsof -i可以查看与网络相关的连接,后面可以接具体端口号,比如lsof -i:22-25 -nP,-P可以显示具体的端口号,-n显示具体ip。

4.4 服务管理

linux中服务就是后台守护进程,可能是一个,也可能是多个。

  • 服务的类型:

    • .service:一般服务类型,主要是系统服务。
    • .socket:内部程序IPC的服务。
    • .target:一组.service和/或.socket服务打包成的。
    • .mount:挂载相关的;.path:检测特定目录的服务;.timer:循环执行的服务。
  • 网络服务还会额外对应端口,对应规则在/etc/services

  • 服务管理:systemctl [command] [xxx.service/target]

    • start, stop, restart:启动,停止,重启;
    • reload:重新加载配置;
    • enable, disable:开机自启动, 非自启动;
    • status:状态
  • 查看所有的服务: systemctl

    • --all:也列出没启动的服务
  • 服务的状态:

    • running:运行中;
    • exited:一次性服务,已经结束;
    • listening:等待其他事件触发的服务;
    • inactive:挂掉的服务。
打赏 赞(0) 分享'
分享到...
微信
支付宝
微信二维码图片

微信扫描二维码打赏

支付宝二维码图片

支付宝扫描二维码打赏

文章目录