一个程序的父进程可以用PPID来判断
 
命令ps -l 可以用来观察程序相关的输出信息
 
被关闭的程序又产生:crontab或者父进程产生的
 
我们将常驻在系统中的程序称为:服务(daemon)
负责系统本身所需的服务:crond,atd
负责网络连线的服务:Apache,named,postfix,vsftpd..等,这些服务会启动一个端口负责网络监听,提供外部用户端的连线要求
 
linux中,预设了六个文字界面登入视图,一个图形界面,可以使用Alt+F1.../F7进行切换
 
ps -aux查看所有进程
cp file1 file2 & 将file1复制为file2,且放置于背景中执行
 
工作管理(job control)是用在自己的bash环境下的进行的
前景:可以控制与下指令的环境
背景:可以自行运作,不能通过ctrl+c终止,可使用bg/fg呼叫该工作
 
直接将指令丢到背景中执行 "&",可以通过资料流重定向来防止背景进程的输出对前景进程的影响
将‘目前’工作丢到背景中‘暂停’ crtl+z
 
观察目前的背景工作状态:jobs [-lrs]
选项与参数:
-l  处理列出job mumber与指令串之外,通过列出pid的号码
-r  仅列出正在背景运行(run)的工作
-s  仅列出正在背景中暂停(stop)的工作
输出列中的+号代表最后被放入到后台的工作,如果输入fg命令,它会拿到前景进行处理
          -号代表倒数第二个放置到背景的工作
 
把背景进程拿到前景处理:fg %jobnumber
让在背景暂停的任务运行:bg %jobnumber
 
管理背景进程: kill -signal %jobnumber
-l:L的小写,列出目前kill能够使用的讯号有哪些
signal:代表能给予后面的工作什么样的指示,用man 7 signal可知:
-1:重新读取参数,类似reload
-2:代表由键盘输入,ctrl+c一样的动作
-9:立刻强制删除一个工作
-15:以正常的程序方式终止一项工作
kill后面接的数字预设是PID,如果要管理bash的工作,要加上%数字了
选项与参数: %jobnumber:jobnumber为工作号码(数字),%号可有可无
 
刚刚说的背景进程依旧与终端机有关,如果离线了,将会被终止掉
 
可以使用at将工作放置到系统背景,而与终端机无关
nohup可以在离线时,让工作继续进行
nohup [指令与参数]  在终端机前景中工作
nohup [指令与参数]  & 在终端机背景中工作
 
 
将某个时间点的程序运作情况取下来:ps
参数与选项:
-A:所有的process均显示出来,与-e具有相同的效果
-a:不与terminal有关的所有process
-u:有效使用者相关的process
x :通常与a一起使用,可列出交完整资讯
输出格式设置:
l:较长,较详细的将该PID得资讯列出
j:工作的格式(jobs format)
-f:做一个更完整的输出
 
仅观察自己bash相关程序:ps -l
F:代表程序的权限,常见的号码有:4,表示此程序的权限为root
                                1,表示此子程序仅进行复制(fork)而没有实际执行(exec)
S:代表这个程序的状态,主要状态有:R,Running,运行中
                                  S,Sleep,睡眠状态
                                  D,不可被唤醒的睡眠状态,通常这支程式在等待I/O的情况
                                  T,stop,停止状态,可能是在工作控制(背景暂停)或除错(traced)状态
                                  Z,Zombie,僵尸状态,程序已经停止但无法被移除记忆体
UID:此程序被该UID所拥有
PID:程序的PID号码
PPID:此程序的父程序PID号码
C:代表CPU使用率,单位为百分比
PRI/NI:Priority/Nice的缩写,代表此程序被CPU所执行的优先顺序,数值越小代表该程序越快被执行
ADDR/SZ/WCHAN:ADDR是kernel function,指出该程序在记忆体的那个部分,如果是running,会显示-
              SZ代表此程序用掉多少记忆体
              WCHAN表示程序是否在运行中,如果是running则显示为-
TTY:登入者的终端位置,若为远端登入则使用动态终端界面pts/n
TIME:使用掉的cpu时间,而不是系统时间
CMD:造成此程序的指令
 
动态观察程序的变化:top [-d 数字] |top [-bnp]
-d:后面直接接秒数,设置显示的更新描述,预设是5秒
-b:以批次的方式执行top,通常会搭配资料重导向将批次的结果输出为档案
-n:与-b搭配,需要进行几次top的输出
-p:指定某些pid来进行监视
 
在top执行过程中可以使用的按键指令:
?:显示在top当中可以输入的按键指令
P:以CPU的使用资源排序显示
M:以Memory的使用资源排序显示
N:以PID来排序
T:由该process使用的cpu时间累积(TIME+)排序
k:给予某个PID一个讯号signal
r:给予某个PID重新制订一个nice值
q:离开top软体的按键
 
top默认使用CPU的使用率作为排序的重点
我们自己的bash PID可由$$变量取得,echo $$
 
 
pstree [-A|U][-up]
-A:各程序树之间的连接以ASCII字元来连接
-U:各程序树之间的连接以万元码的字元来连接,在某些终端界面下可能会有错误
-p:列出每个proces的PID
-u:列出每个process所属账号名称
 

通过给程序一个讯号(signal)告诉程序你想要她做什么

kill -signal PID
killall -signal 指令名称
killall [-iIe] [command name]
-i:interactive的意思,互动式的,若要删除时,会提示字元给使用者
-e:exact,表示后面接的command name要一致,但整个完整的指令不能超过15个字元
-I:指令名称(可能含参数)忽略大小写

通过档案(或档案系统)找出正在使用该档案的程序:fuser
fuser [-umv] [-k[i][-signal]] file/dir
-u:除了程序的PID之外,同时列出该程序的拥有者
-m:后面接的那个档名会主动地上提到该档案系统的最顶层,对umount不成功很有效
-v:可以列出每个档案与程序还有指令的完整相关性
-k:找出使用该档案/目录的PID,并试图以SIGKILL这个讯号给予该PID
-i:必须与-k配置,在删除PID前先询问使用者意愿
-signal:如-1,-15等,默认是SIGKILL (-9)

 
查出某个程序开启或者使用的档案与装置:lsof [-aUu][+d]
-a:多项资料需要‘同时成立’才显示结果
-U:仅列出Unix like系统的socket档案类型
-u:后面接username,列出该使用者相关程序所开启的档案
+d:后面接目录,亦即找出某个目录底下已经被开启的档案
 
找出某个正在执行的程式的PID:pidof [-sx] program_name
-s:仅列出一个PID而不是所有的PID
-x:同时列出该grogram name可能的PPID那个程序的PID

linux 之程序管理的更多相关文章

  1. linux备忘录-程序管理与SELinux

    知识点 程序与程序(Process and Program) 通过执行一条指令或程序,则可以触发一个事件,并获得一个PID.当我们需要启动一个程序时,我们是启动一个二进制文件(binary file) ...

  2. Linux软件管理器(如何使用软件管理器来管理软件)2---安装及管理Linux应用程序

    安装及管理Linux应用程序 Linux应用程序的组成1.普通的可执行程序文件,一般保存在/usr/bin目录中,普通用户即可执行.2.服务器程序.管理程序文件,一般保存在/usr/sbin目录中,需 ...

  3. 鸟哥的linux私房菜——第十六章学习(程序管理与 SELinux 初探)

    第十六章.程序管理与 SE Linux 初探 在 Linux 系统当中:"触发任何一个事件时,系统都会将他定义成为一个程序,并且给予这个程序一个 ID ,称为 PID,同时依据启发这个程序的 ...

  4. Linux堆内存管理深入分析(上)

    Linux堆内存管理深入分析(上半部) 作者:走位@阿里聚安全   0 前言 近年来,漏洞挖掘越来越火,各种漏洞挖掘.利用的分析文章层出不穷.从大方向来看,主要有基于栈溢出的漏洞利用和基于堆溢出的漏洞 ...

  5. windows下运行的linux服务器批量管理工具(带UI界面)

    产生背景: 由于做服务器运维方面的工作,需要一人对近千台LINUX服务器进行统一集中的管理,如同时批量对LINUX服务器执行相关的指令.同时批量对LINUX服务器upload程序包.同时批量对LINU ...

  6. [20150513]Linux远程登陆管理以及Vim的学习

    Linux远程登陆管理以及Vim的学习 实现Linux远程管理 所需工具Xshell,Xshell是一个用于MS Windows平台的强大的SSH,TELNET,和RLOGIN终端仿真软件.它使得用户 ...

  7. [linux笔记]理清linux安装程序用到的(configure, make, make install)

    我作为一名经常和linux打交道的程序员,每次在linux安装软件都祈求可以用——apt-get,yum,brew等应用程序管理器安装,有的时候事与愿违,你只能自己编译安装-wtf,说好的美丽世界呢? ...

  8. linux 下用户管理

    linux 下用户管理 一.用户的分类 1.超级用户:root UID=0 2.系统用户:不需要登录系统,对应用程序服务,主要维护系统的正常运行:UID = 1 ~ 499(RHEL7 = 1 ~ 9 ...

  9. 深入理解Linux中内存管理

    前一段时间看了<深入理解Linux内核>对其中的内存管理部分花了不少时间,但是还是有很多问题不是很清楚,最近又花了一些时间复习了一下,在这里记录下自己的理解和对Linux中内存管理的一些看 ...

随机推荐

  1. AForge.NET是一个专门为开发者和研究者基于C#框架设计的视频录像

    AForge.NET是一个专门为开发者和研究者基于C#框架设计的,他包括计算机视觉与人工智能,图像处理,神经网络,遗传算法,机器学习,模糊系统,机器人控制等领域.这个框架由一系列的类库组成.主要包括有 ...

  2. PHP获取图片颜色值

    PHP获取图片颜色值,检测图片主要颜色的代码: <?php $i=imagecreatefromjpeg("photo3.jpg");//测试图片,自己定义一个,注意路径 f ...

  3. 字符集 ISO-8859-1(1)

    HTML 4.01 支持 ISO 8859-1 (Latin-1) 字符集. ISO-8859-1 的较低部分(从 1 到 127 之间的代码)是最初的 7 比特 ASCII. ISO-8859-1 ...

  4. ES6 - 变量的解构赋值学习笔记

    变量的解析赋值 数组的解析赋值 es6允许按照一定的模式,从数组和对象中提取值,对变量进行赋值,这就称为解构. var a = 1; var b = 2; var c = 3; //在es6中允许写成 ...

  5. 《疯狂Java讲义》(七)---- 方法

    一 方法的参数传递机制 Java方法的参数传递方式只有一种:值传递.就是将实际参数值的副本传入方法内,而参数本身不会受到任何影响. eg. 基本类型的值传递 public class Primitiv ...

  6. MFC中在基于对话框的窗体中使用CFileDialog导致菜单栏变灰的解决方案

    CSDN的博客编辑器实在是难用……转战博客园 直接把CSDN发的搬过来了 ————————————————————————————我是分割线———————————————————————————— 第 ...

  7. App Store Review Guideline(带翻译)

    1. Terms and conditions(法律与条款) 1.1  As a developer of applications for the App Store you are bound b ...

  8. 为应用程序的选项卡及ActionBar设置样式

    示例文件  flex-mobile-dev-tips-tricks-pt2.zip 关于Flex移动开发的提示和技巧有一系列文章,这是其中的第二部分.第一部分集中讲解如何在视图切换及应用程序操作切换之 ...

  9. 利刃 MVVMLight 3:双向数据绑定

          上篇我们已经了解了MVVM的框架结构和运行原理.这里我们来看一下伟大的双向数据绑定. 说到双向绑定,大家比较熟悉的应该就是AngularJS了,几乎所有的AngularJS 系列教程的开篇 ...

  10. 《JAVASCRIPT高级程序设计》表单基础知识和文本框脚本

    在HTML中,表单是由<form>元素来表示,在javascript中,表单对应的是HTMLFormElement类型,它具有一些独有的属性和方法: 一.表单基础知识 1.取得表单的方式 ...