在任何时间,linux系统通常同时运行数百个,甚至数千个进程。进程只有一个正在运行和使用资源的程序。它包括终端,web服务器,任何正在运行的命令,任何数据库,GUI界面等等。任何优秀的linux管理员(特别是黑客)都需要了解如何管理他们的流程以优化他们的系统。例如,一旦黑客控制了目标系统,他们可能想要找到并停止某个进程,特别是防病毒应用程序或防火墙。为此,他们首先需要知道如何找到该过程。黑客可能还想设置一个扫描脚本来定期运行以寻找易受攻击的系统,因此我们还将研究如何安排这样的脚本。
查看进程
在大多数情况下,管理进程的第一步是查看系统上正在运行的进程。ps命令
ps 查看哪些进程处于活动状态
linxu内核是操作系统的核心,在创建进程时按顺序为每个进程分配一个唯一的进程ID(PID)。在linux中使用这些进程时,通常需要指定它们的PID,因此进程的PID比进程的名称更重要。
当前登录的用户(例子中是root)以及该终端上正在运行的进程。在这里,它只是说bash shell是打开并运行的,我们使用了ps命令。
我们想要并且需要更多的信息,尤其是关于这些进程由其他用户和后台系统运行。
ps aux
USER 进程用户 PID 进程id %CPU CPU占用率 %MEM 内存占用率 COMMAND进程名
通常,要对进程执行任何操作,必须指定其 PID。
通过进程名过滤进程
启动metasploit的命令如下
msfconsole
ps aux | grep msfconsole 在进程列表中找到它
通过top命令查找资源占用率过高的进程
top命令每10秒动态刷新一次列表,而ps命令只提供一次进程快照。
top 按下H还是?按键将弹出一个交互式命令 Q键退出
管理进程
使用nice命令改变进程优先级
内核将对进程的优先级拥有最终决定权,但你可以使用nice建议提高进程的优先级。
nice的值范围从-20到+19,默认为0,高nice值为低优先级,低nice值为高优先级。当进程启动时,它继承其父进程的nice值。
启动进程时,可以使用nice命令设置优先级,然后使用renice命令刷新更改的优先级让它生效。
在运行进程时设置优先级
nice -n -10 /bin/slowprocess 加速执行 运行ps查看它是否更改
使用renice命令改变正在运行的进行优先级
renice命令使用-20和19之间的绝对值,并将优先级设置为该特定级别,而不是从其开始的级别增加或减少。针对进程的PID而不是名字。
renice 20 6996 给6993进程一个较低的优先级
与nice一样,只有root用户可以将进程重新设置为负值以让它更快,但任何用户都可以使用renice来降低优先级。
还可以使用top工具更改nice值。随着top运行,按R键,然后提供PID和nice值。
终止进程
消耗太多,异常,假死,通常被称为僵尸过程。kill命令来终止它。kill命令是kill-signal PID,其中标志开关是可选的。如果不提供信号标志,默认为SIGTERM。
kill -1 6996 使用HUP信号重新启动进程
kill -9 6996 强制终止
killall -9 zombieprocess 如果不知道进程PID,则可以使用进程的名称作为参数
还可以在top命令中终止进程,按K键,输入需要终止进程的PID
在后台运行进程
无论你是使用命令行还是GUI,都在shell中工作。执行命令时,shell会等待命令完成,然后再提供另一个命令提示符。有时希望进场在后台运行,而不必等待它在该终端中完成。
假设我们想在文本编辑器中处理脚本
leafpad newscript
当然,我们可以打开另一个终端来运行更多命令,但更好的选择是节省资源和屏幕空间是启动在后台运行的文本编辑器。
要在后台启动文本编辑器,只需在命令末尾添加一个与号(&),如下所示
leafpad newscript &
把后台运行的进程移到前台
使用fg(foreground)命令,需要提供进程PID
fg 1234
如果不知道具体的PID,可以使用ps命令查看
定时执行程序
at命令时守护进程(后台进程)对于将作业安排在将来的某个时刻运行一次非常有用。crond更适合于安排任务每天,每周和每月发生。
at 后跟执行时间处理。
先输入 at 7:20am 进入交互模式,出现at>提示符。
at >/root/myscanningscript 给定计划执行的脚本文本