Linux操作系统实验报告单(6)进程与任务管理

一、实验目的

  1. 掌握进程管理的常用命令(pspstreetopsystemctlkillall等)。
  2. 熟悉定时任务(at)与调度任务(crontab)的设置与管理。
  3. 理解文件特殊权限(SUID、SGID、Sticky)的配置与作用。

二、实验内容

1. 进程管理

(1)练习进程状态查询命令ps、pstree、top
①ps命令练习:

$ ps -el //显示所有进程的详细信息(包括优先级PRI、nice值NI等),适用于查看系统级进程状态。

命令运行结果截图:

$ ps -Af | more //以完整格式(包括命令行参数)列出所有进程,并分页显示,便于查看长命令

命令运行结果截图:

$ ps -t /dev/tty1 //显示与终端tty1关联的进程,适用于排查特定终端的问题。

命令运行结果截图:

$ ps -f -u gjshao  //查询整个系统内的进程信息情况

$ ps -axj  //显示进程树结构(含父进程PPID、进程组PGID等),结合j参数展示更全面的进程关系。

命令运行结果截图:

$ ps aux | grep nginx  //查找nginx相关进程

命令运行结果截图:

②pstree命令练习:

$ pstree -p  # 显示PID及层次结构,以树状结构显示进程间父子关系。(需通过apt install psmisc安装。)

命令运行结果截图:

$ pstree -p | grep log   //查找log进程的树结构

③top命令练习:

$ top -u root  # 仅显示root用户的进程,实时动态监控进程状态及系统资源(CPU、内存)。按 P(CPU排序)、M(内存排序)、k(终止进程)调整视图

命令运行结果截图:

(2)练习进程管理命令systemctl、killall、pgrep/pkill、fuser、nice
①systemctl命令练习:

systemctl list-unit-files #列出所用可用单元

命令运行结果截图:

systemctl list-units #列出所有运行中的单元

命令运行结果截图:

systemctl is-enabled accounts-daemon.service #检查某个单元是否启用

命令运行结果截图:

systemctl list-unit-files ?Ctype=service # 列出所有服务

命令运行结果截图:

②killall命令练习:

killall -l //列出所有支持的信号

killall man //终止所有正在运行的“man”

killall -9 bash //强制终止所有bash进程,适用于处理僵死进程

③pgrep/pkill命令练习:

pgrep vsftd //查找vsftd进程的PID,结合-u root可过滤用户

pgrep -a vstfd //查找名称或命令行包含vstfd的进程,并显示完整命令行和PID

pgrep -u root named //查找属主为root且进程名为named的PID(如DNS守护进程)

pgrep -d,-x httpd //精确匹配进程名为httpd的PID,并用逗号分隔输出结果(-d指定分隔符,-x精确匹配)

pkill -HUP syslogd //:向syslogd发送HUP信号,使其重新加载配置文件

pkill -9 bash //强制终止所有bash进程(-9对应SIGKILL信号)

④fuser命令练习:

fuser -k /dev/tty5 //终止占用tty5的进程

fuser telnet/tcp ftp/tcp //尝试列出使用telnet(23/tcp)和ftp(21/tcp)端口的进程。

fuser -u 23/tcp 21/tcp //显示占用23/tcp和21/tcp端口的进程及其所属用户(-u显示用户信息)。

fuser -n tcp 21 //等价于fuser 21/tcp,查看占用21端口的TCP进程(-n指定协议和端口)。

$ fuser -v /var/log/syslog  // 显示占用该文件的进程信息
 

⑤nice命令练习:

nice myp & //以默认较低优先级(nice值+10)后台运行myp程序。

nice -15 myp& //启动myp进程,nice值设为15(较低优先级),ps -l可查看NI字段验证。

ps -l | grep myp //列出进程信息并通过grep过滤出myp进程,查看其优先级(NI列)和状态。

(3)练习可执行文件的特殊属性操作
①新建文件

使用vim新建文件,结果如下:

②查看文件权限

使用命令ls -l可以看到文件权限

结果如下:

③设置、修改、查看文件特殊权限suid、sgid及sticky

①设置、修改、查看文件特殊权限suid

运行chmod u+s lw.txt //为文件 lw.txt 设置 setuid 位(u+s)

运行结果截图如下:

②设置、修改、查看文件特殊权限sgid

chmod g+s zhugeliang //为文件或目录 zhugeliang 设置 setgid 位(g+s)

运行结果截图如下:

③设置、修改、查看文件特殊权限sticky

chmod o+t zhugeliang //为目录 zhugeliang 设置 粘滞位(sticky bit) (o+t)

运行结果截图如下:


2. 任务管理


(1)at定时任务
①安装at:

②启动atd服务
$ systemctl start atd && systemctl status atd  # 确保atd运行

运行结果:

③设置任务
$ at now +1 minutes  # 1分钟后执行任务
at> date >> /home/my.sh #输入任务
at> <Ctrl+D>         # 保存任务
④查看与删除任务
$ atq                # 列出待执行任务
$ atrm 1             # 删除任务ID为1的任务

(2)crontab任务调度
①基本任务设置
  • 编辑任务文件:

    $ crontab -e  # 选择vim编辑器
    例如:
    Select an editor. To change later, run 'select-editor'.
    1. /bin/nano
    2. /usr/bin/mcedit
    3. /usr/bin/vim.basic
    4. /usr/bin/vim.tiny
    Choose 1-4 [1]: 3 //选3
  • 添加任务(每分钟记录时间):

    * * * * * /usr/bin/date >> /home/lw3613-one(自己的主机名文件)/to.txt  # 每分钟追加日期
    

  • 保存退出,提示任务创建成功截图:

  • 观察输出内容:
cat /home/lw3613-one(自己的主机名文件)/to.txt

结果截图:

②验证任务执行
$ rm /home/lw3613-one(自己的主机名文件)/to.txt && sleep 60  # 删除文件并等待1分钟
$ ls /home/lw3613-one(自己的主机名文件)/to.txt  # 检查文件是否重新生成

结果截图:

③多任务调度(脚本方式)
  • 创建脚本my.sh

    #!/bin/bash
    date >> /home/mycal
    cal >> /home/mycal
    

  • 给my.sh增加执行权限:
chmod u+x my.sh //给当前用户分配执行权限

  • 赋予执行权限并加入crontab:

    $ chmod +x my.sh
    $ crontab -e
    */1 * * * * /home/my.sh  # 每分钟执行脚本
    

运行结果:

  • 执行命令$ ./my.sh,执行脚本文件,观察输出;执行命令$ cat /home/mycal 查看mycal文件的内容,是否有日期和日历,且每隔一分钟,是否有追加内容:

查看结果:

  • 执行命令$ crontab -l ,列出当前定时任务

列出结果截图:

  • 执行命令$ crontab-r,删除定时任务,重启crond。

命令运行结果截图:


三、实验总结

  1. 进程管理核心命令

    • ps/top用于监控进程状态,pstree可视化进程树。
    • systemctl管理服务,kill/pkill终止进程,nice调整优先级。
  2. 文件权限安全

    • SUID/SGID需谨慎设置(仅限必要程序),Sticky位保护共享目录。
  3. 定时任务要点

    • at适合一次性任务,crontab适合周期性任务。
    • 脚本调用需确保执行权限,任务路径建议使用绝对路径。
  4. 调试技巧

    • 查看系统日志(/var/log/cron)排查任务未执行问题。
    • 使用crontab -e语法检查工具避免格式错误。

通过本实验,可全面掌握Linux进程管理与自动化任务的核心技能,为系统运维及脚本开发奠定基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小李独爱秋

你的鼓励将是我加更的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值