Linux的进程启动的方式不外乎有两种方式:调度启动和手动启动,调度启动就是我们经常使用的任务计划啦,而手动启动则是由用户输入命令,然后Linux执行的一个过程,分为前台启动和后台启动。
前台启动
手动启动一个进程,比如输入一个ls、pwd等命令。它的特点是会一直占据着终端的窗口,直至完成。一般适合运行时间比较短,需要与用户进行交互的程序。
例如,前台启动,会占据终端窗口,直至命令运行完成
在终端窗口运行直至命令结束,终端可以看到结果
后台启动
与前台启动相对应,不管进程是否完成,都会立即返回到shell提示符下,在窗口页面等待他完成。好处是,你可以在它后台运行的时候,继续运行其他命令。如果一个进程比较耗时,也不需要用户的交互,可以考虑使用后台启动。要以后台的方式启动一个进程,只要在运行的命令后面添加&即可,例如:
终端只会告知进程id,可以通过ip查看进程的运行结果
使用jobs命令,可以看到系统当前正在运行的所有后台进程:
需要特别注意的是,如果用户退出终端,该用户执行的所有程序全部会结束,包括正在执行的后台程序。
可以使用nohup命令,保证命令运行的后台进程不会因此结束:
可以使用fg %n关闭nohup命令
终止进程
前台进行-直接Ctrl+C就可以了
如果是后台进行,需要使用kill来终止进行,需要使用ps命令去获取进程id,然后用kill命令杀掉进程。常用选项 -s signal顾名思义,信号名或者信号代码,查看所有的信号代码
代码很多,通常都是9或者15,这两个表示终止进程运行
比如要终止我们后台的进程,可以如下:
-9表示发送杀死进程的信号
如果使用这个命令都无法终止,那么可能这些进程已经处于僵死状态,需要通过重启计算机解决
killall
如果我们需要杀死一个程序运行的所有进程,使用kill命令就比较麻烦了,因为一个程序通常会包含很多的进程,因此,我们可以使用killall命令来杀死程序的所有进程
命令格式:killall 进程名
杀死所有ping命令的进程
已经成功杀掉
这是针对进程来进行操作,如果一个文件被很多人占用,我们希望全部杀掉,方便我们对这个文件进行操作和处理,可以使用fuser命令,命令格式如下
fuser -k filename
-m能够查看当前这个文件相关的进程等,然后使用-k杀掉
优先级
在Linux系统中,每个进程在执行时都会有一个优先级,等级越高,进程获取CPU的时间越多,处理就会更快。进程的优先等级范围是-20-19,其中-20最高,19最低,默认级别为0,使用nice和renice命令可以更改优先级
以上就是关于Linux进程管理的一些比较常用的操作,感谢阅读!