linux进程管理

做为一个新手,部署Python网站的时候总会出各类各样的问题,这个时候我就很想知道是哪一个程序没有运行。这几天读了鸟哥私房菜的进程管理这一章,还没读完,先作下笔记。shell

什么是进程?

一个程序被加载到内存中运行,在内存中的数据就被称为进程。在Linux下,全部的命令在执行时都会被系统定义为一个进程,这条命令会被分配一个ID,称为PID,执行这条命令的用户会被分配一个UID,系统根据UID来判别执行命令的权限。windows

进程就是正在运行中的程序。bash

子进程是父进程衍生出来的进程,用fork and exec的方式产生,PPID值与父进程PID值相同能够用ps -l来查看当前用户的全部进程。服务器

工做管理(job control)

Linux下的工做管理很像windows的任务管理器。工做管理是将进程控制在前台或后台运行,后台运行的程序必须是与用户没有交互,换句话说不用等待输入的。出现提示符让你操做的环境称为前台(foreground),反之称为后台(background)网站

能够在执行的命令后加上&把它丢到后台去执行,如code

tar -zpcf /tmp/etc.tar.gz /etc &

终端里会显示出PID,若是有出错信息,会提示,能够看到命令提示符。进程

CTRL+Z 与 CTRL+C

CTRL+Z能够将进程暂停放到后台,进程是没有中止的!CTRL+C是中止当前的进程。被CTRL+Z放到后台暂停的进程,能够经过fgbg调整为运行状态。先查看一下当先后台工做状态:
jobs [-lrs]内存

  • -l:列出命令及PID
  • -r:列出运行的进程(run)
  • -s:列出后台暂停的进程(stop)

而后用fg %jobnumber能够调到前台('%'无关紧要,jobnumber为任务编号,不是PID)或是用bg %jobnumber来在后台运行。部署

kill

kill -signal %jobnumberclass

  • signal:
  • -1:从新读取配置文件(相似reload)(左边是原文,不懂是干吗的,若是明白烦请指点><)
  • -2:与键盘ctrl+c做用相同
  • -9:强制删除一个工做
  • -15:以正常方式结束一个工做

脱机管理

脱机管理是指当你用远程终端登录服务器时,若是直接以&方式将任务放到后台掉线以后进程是不会继续执行的,能够用nohup来解决,如:

nohup ./sleep500.sh &

查看进程

ps命令能够静态查看系统进程。

  • ps -l查看本身bash相关进程
  • ps aux查看系统全部进程,配合grep等管道命令用
相关文章
相关标签/搜索