进程和计划任务管理

一,查看和控制进程

1:查看进程

(1):ps命令——查看静态的进程统计信息

ps(Process Status)命令提供了关于系统中当前正在运行的进程的信息。它是一个瞬间快照,显示的是执行命令那一刻的进程状态。ps 的强大在于其丰富的选项,可以用来定制输出内容。

  • 基本用法:
    • ps:显示当前终端下的进程简略信息。
    • ps -ef 或 ps ax:显示所有用户的全部进程,包括进程ID(PID)、父进程ID(PPID)、启动时间、终端类型、CPU占用时间、命令行等详细信息。
    • ps -aux:也是显示所有用户的进程,但格式略有不同,"a" 表示所有用户,"u" 表示以用户为主的格式输出,"x" 包含没有控制终端的进程。

(2):top命令——查看进程动态信息

top 是一个实时的系统监视器,能够显示系统中各个进程的资源占用状况,包括CPU使用率、内存使用量、虚拟内存大小、进程启动时间等,并且这些信息会持续更新。用户可以通过按键来排序显示内容、选择显示列或者杀死进程。

  • 功能特点:
    • 动态显示:自动更新显示内容,一般每几秒刷新一次。
    • 排序:默认按CPU使用率排序,可以手动调整按内存或其他指标排序。
    • 交互性:允许用户在运行时通过键盘输入命令来改变查看模式、排序方式或终止进程。

(3):pgrep命令——查询进程信息

pgrep 是一个基于名称查找并显示进程ID的工具。它比直接使用 ps 加管道到 grep 更简洁高效。

  • 使用示例:
    • pgrep sshd:查找所有名为sshd的进程,并输出它们的PID。
    • pgrep -f pattern:使用模式匹配查找进程,其中-f表示模式可以出现在命令行的任何位置,而不仅仅是进程名的开始。

(4):pstree命令——查看进程树

pstree 命令以树状图的形式展示系统中的进程关系,直观地展现了进程间的父子关系,对于理解和分析进程依赖关系非常有帮助。

  • 使用示例:
    • pstree:显示当前用户的进程树。
    • pstree -p 或 pstree -p PID:除了显示进程名称外,还显示每个进程的PID。如果指定了PID,则从该进程开始绘制树。
    • pstree -u username:显示指定用户的进程树。

2:控制进程

(1)启动进程

1. 手工启动进程
  • 直接在命令行启动:最直接的方式是在shell中直接输入命令启动进程,例如:
  firefox & # 后面的&符号让Firefox在后台运行
  
  • 使用nohup命令:使进程在用户退出终端后继续运行:
  nohup long_running_process &> output.log &
  
2. 调度启动进程
  • cron:定期执行任务,编辑crontab文件(crontab -e)来安排进程的自动启动,例如每天凌晨3点执行备份脚本:
  0 3 * * * /path/to/backup_script.sh
  
  • at:安排一次性任务在特定时间执行,如:
  at 10:30 tomorrow
  warning: commands will be executed using /bin/sh
  at> /path/to/script.sh
  at> <EOT> # 按Ctrl+D结束输入
  
(2)改变进程的运行方式
1. 挂起当前的进程
  • 使用Ctrl+Z组合键可以立即挂起当前在前台运行的进程。
2. 查看后台的进程
  • 使用jobs命令可以查看当前shell下被挂起或后台运行的进程状态。
3. 将后台的进程恢复运行
  • 使用fg命令将最近一个挂起的进程放回前台:
  fg
  
  • 或者指定作业号放回前台:
  fg %2
  

其中2是通过jobs命令看到的作业号。

(3)终止进程执行
a. 使用kill命令终止进程
  • 终止指定PID的进程:
  kill PID
  
  • 强制终止(发送SIGKILL信号):
  kill -9 PID
  
b. 使用killall命令终止进程
  • 根据进程名终止所有相关进程:
  killall process_name
  
  • 强制终止所有匹配进程:
  killall -9 process_name
  
c. 使用pkill命令终止进程
  • 类似于killall,但可以根据正则表达式匹配进程名:
  pkill process_pattern
  
  • 强制终止:
  pkill -9 process_pattern
  

二,计划任务管理

1. at 一次性任务设置
  • 设置一次性任务:使用at命令配合时间参数设置一次性任务,例如在明天上午9点执行命令:
  echo "command_to_run" | at 9am tomorrow
  
  • 查看at队列:使用atq命令查看当前用户计划的一次性任务列表。

  • 删除at任务:使用 atrm命令后跟任务编号来删除指定的任务,例如删除任务编号5:

  atrm 5
  
2. 安装顺序(此部分通常涉及软件包管理器操作,以下以Debian系为例)
  • 安装at和cron服务:通常系统已经预装了这些工具,如果没有,可以通过包管理器安装,例如:
  sudo apt-get update
  sudo apt-get install at cron
  
3. crontab 周期性任务设置
(1)crontab的配置文件和目录
  • /etc/crontab:系统级别的crontab配置文件,用于安排系统任务。
  • /etc/cron.d/:存放额外的系统cron任务配置文件。
  • /etc/cron.hourly//etc/cron.daily//etc/cron.weekly//etc/cron.monthly/:存放按小时、天、周、月执行的脚本。
  • /var/spool/cron/:用户cron任务的配置文件存放目录,每个文件名对应一个用户名。
(2)使用crontab命令管理用户的计划任务
  • 编辑用户的计划任务列表
  crontab -e
  

这将打开当前用户的crontab文件进行编辑,可以添加、修改或删除定时任务。

  • 查看用户的计划任务列表
  crontab -l
  

此命令会列出当前用户的crontab任务列表。

  • 删除用户的计划任务列表
    • 编辑crontab文件时(crontab -e),可以直接删除不再需要的行。
    • 若要清空整个crontab,可以在编辑模式下删除所有内容后保存,或者:
    crontab -r
    
注意,此命令会直接删除所有crontab条目,不可逆,请谨慎使用。

atcron是Linux系统中强大的计划任务工具,通过合理配置,可以自动化执行各种重复性或一次性任务,极大地提高工作效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值