一.实验目的:
(1)理解作业、任务和进程管理的任务;
(2)理解进程的类型及启动方法;理解进程状态,掌握进程状态查询工具;
(3)理解UNIX的系统进程间信号通信机制,掌握信号操作和终止进程的命令;
(4)掌握系统服务管理方法及管理工具systemctl;
(5)掌握任务和作业管理命令at和crontab,了解batch;
二.实验内容(步骤)和结果
1.进程状态查询与终止指定进程。
查询进程状态信息,可以使用命令ps,示例如下
# ps -el # 长格式显示所有进程的信息
# ps -Af | more # 带命令及参数显示系统中的所有进程信息,并分屏显示
# ps -t /dev/tty1 # 查询与终端tty1相关的进程信息。
# ps -f -u gjshao # 查询与用户(gjshao)相关的信息
# ps -axj # 查询整个系统内的进程信息情况
显示进程树,可使用ps和pstree命令,示例如下
# pstree -p
# ps axjf
# ps -ejH
若仅是为了查询进程名或PID,可使用pstree、pgrep或fuser
# pstree -p | grep -w pname
# pgrep pname
若要终止指定进程,可以使用kill、pkill、killall或fuser,方法如下:
2.同时在多个终端的登录后,终止所的同名进程bash,并观察系统的反应。
对于以bash作为登录shell的用户,可以采用以下命令同时他们的登录shell bash发信号,终止bash,让他们都退出系统(也包括发出信号的自己)。
# killall -9 bash # 或 # pkill -9 bash
3.通过作业和任务管理让系统在今后某个时刻关机或重新启动。
1)让作业myjob在2小时后执行;
2)让系统在每个周一1:00重新启动。
1)若让系统在2小时后重启动,可以使用at命令,方法有3:
(1)在线提交:
(2)即时文档
(3)文件提交
(2)
4.使用rc.local文件,让系统启动时,将启动的大致时间记录到/tmp/time.start。
(1)启用rc-local.service,方法是
(2)编辑rc.local文件
编辑rc.local文件(在Ubuntu为/etc/rc.local,在红帽为/etc/rc.d/rc.local),在其中添加如下一行: