进程可以由一个进程的基础上运行另外一个进程,前者叫做父进程,后者是子进程。
比如我打开一个终端,这是一个进程,然后我在上面执行命令,打开新的程序,新的程序则是子进程。
比如说,我打开firefox
这个时候可以通过pstree来查看进程树
搜索一下firefox,可以看见 firefox是termianl的子进程
除了pstree,我们还经常使用ps 来查看当前的进程。ps只能查看当前终端的进程,ps aux可以查看所有的进程,这个配合grep就可以查看我们需要的进程状态了。
例如我们可以使用下面3个不同的命令来查看firefox的进程,注意pidof必须是进程的全称
ps aux 是静态的显示某一刻的进程,如果需要动态的显示实时信息,可以用 top
如何关掉一个进程? 我们可以用kill命令
kill -l可以显示信号的代码,其中2 相当于 ctrl+C; 9 强制退出; 15是默认值,关闭程序
如果我需要强行关掉firefox,运行 kill -9 1359 就可以了
最后我们看看前台程序和后台程序。
如果我直接执行 firefox,他会打开一个firefox的界面,但是这个时候我的终端就没法继续输入了,这是因为firefox运行在前台,如何切换到后台呢,可以 按 Ctrl+Z,状态就变成 Stop了,这个时候再输入bg,就切换到后台了;输入jobs可以查看后台程序; 输入fg可以切换回前台。
如果想直接运行在后台,后面加一个 &符号就行了,例如 firefox &