精华内容
下载资源
问答
  • 上一快速认识Kafka阶段(1)——消息队列,Kafka基本简介给大家简单介绍了消息队列和kafka的一些基本内容,下面教大家怎样去安装部署Kafka集群哦!!!!!! 码字不易 先点赞吧! 1、初始化环境准备 安装jdk,...

    上一篇快速认识Kafka阶段(1)——最详细的Kafka介绍给大家简单介绍了消息队列kafka的一些基本内容,下面教大家怎样去安装部署Kafka集群哦!!!!!!

    码字不易 先点个赞吧!

    在这里插入图片描述

    1、初始化环境准备

    安装jdk,安装zookeeper并保证zk服务正常启动

    2、下载安装包并上传解压

    点击文字下载Kafka安装包
    提取码:r766

    node01执行以下命令,下载并解压
    
    cd /export/softwares
    
    tar –zxvf  kafka_2.11-1.0.0.tgz -C /export/servers/
    

    3、node01服务器修改kafka配置文件

    node01执行以下命令进入到kafka的配置文件目录,修改配置文件
    node01执行以下命令创建数据文件存放目录
    
    mkdir -p  /export/servers/kafka_2.11-1.0.0/logs 
    
    cd /export/servers/kafka_2.11-1.0.0/config
    
    vim server.properties
    
    broker.id=0 (每个节点不能相同)
    
    log.dirs=/export/servers/kafka_2.11-1.0.0/logs/
    
    zookeeper.connect=node01:2181,node02:2181,node03:2181
    
    delete.topic.enable=true
    
    host.name=node01 (改成对应的节点)
    

    4、安装包分发到其他服务器上面去

    node01执行以下命令,将node01服务器的kafka安装包发送到node02和node03服务器上面去
    
    cd /export/servers/
    scp -r kafka_2.11-1.0.0/ node02:$PWD
    scp -r kafka_2.11-1.0.0/ node03:$PWD
    

    5、node02与node03服务器修改配置文件

    node02使用以下命令修改kafka配置文件
    cd /export/servers/kafka_2.11-1.0.0/config
    vim server.properties
    
    broker.id=1 (每个节点不能相同)
    
    log.dirs=/export/servers/kafka_2.11-1.0.0/logs/
    
    zookeeper.connect=node01:2181,node02:2181,node03:2181
    
    delete.topic.enable=true
    
    host.name=node02
    
    node03使用以下命令修改kafka配置文件
    cd /export/servers/kafka_2.11-1.0.0/config
    vim server.properties
    
    broker.id=2 (每个节点不能相同)
    
    log.dirs=/export/servers/kafka_2.11-1.0.0/logs/
    
    zookeeper.connect=node01:2181,node02:2181,node03:2181
    
    delete.topic.enable=true
    
    host.name=node03
    

    6、kafka集群启动与停止

    注意事项:在kafka启动前,一定要让zookeeper启动起来

    node01执行以下命令将kafka进程启动在后台

    cd /export/servers/kafka_2.11-1.0.0
    
    nohup bin/kafka-server-start.sh config/server.properties 2>&1 &
    

    在这里插入图片描述

    node02执行以下命令将kafka进程启动在后台

    cd /export/servers/kafka_2.11-1.0.0
    
    nohup bin/kafka-server-start.sh config/server.properties 2>&1 &
    

    在这里插入图片描述
    node03执行以下命令将kafka进程启动在后台

    cd /export/servers/kafka_2.11-1.0.0
    
    nohup bin/kafka-server-start.sh config/server.properties 2>&1 &
    

    在这里插入图片描述

    三台机器也可以执行以下命令停止kafka集群

    cd /export/servers/kafka_2.11-1.0.0
    
    bin/kafka-server-stop.sh
    
    以上就是kafka的集群搭建,其实很简单,接下来给大家更新 kafka集群的操作,点个关注点个赞再走吧!!!
    展开全文
  • 选择要恢复文件所在的分区,在默认情况下软件对分区执行的是快速扫描,如果你需要对分区进行更彻底的扫描,就在"完成扫描"前打勾就行了,选择好分区后,我们点击"下一步"。电脑收藏夹位置在哪? 如何将网址加入...
  • 怎样在PHP 中运用 SimpleXML 处理任务

    千次阅读 2006-10-31 16:41:00
    一个访问者打开主页时,服务端便执行PHP的命令并将执行结 果发送至访问者的浏览器中,这类似于ASP和CoildFusion。然而PHP和他们不同之处在于PHP开放源码和跨越平台,PHP可以运行在 WINDOWS NT和多种版本的UNIX。...
     PHP是一种基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页。当一个访问者打开主页时,服务端便执行PHP的命令并将执行结 果发送至访问者的浏览器中,这类似于ASP和CoildFusion。

    然而PHP和他们不同之处在于PHP开放源码和跨越平台,PHP可以运行在 WINDOWS NT和多种版本的UNIX上。它不需要任何预先处理而快速反馈结果,它也不需要mod_perl的调整来使您的服务器的内存映象减小。

    PHP消耗的资源较 少,当PHP作为Apache Web服务器一部分时,运行代码不需要调用外部二进制程序,服务器不需要承担任何额外的负担。

    除了能够操作您的页面外,PHP还能发送HIIP的标题。您可以设置cookie,管理数字签名和重定向用户,而且它提供了极好的连通性到其它数据库(还有DBC),集成各种外部库来做用PDF文档解析XML的任何事情。

    PHP的编程语言类似与C和Perl。在使用它们之前您没必要声明任何变量,而且建立数组和Hash是很简单的事情。PHP还有一些面向对象的特征,可以为组织和打包您的代码提供很好的帮助。


    PHP 版本 5 引入了 SimpleXML,一种用于读写 XML 的新的应用程序编程接口(API)。它使 PHP 页面能够以 PHP 友好的语法来查询、搜索、修改和重新发布 XML。

    SimpleXML 对于 PHP 程序员的工具箱来说是个不错新玩意。适用的情况很多。具体而言,它能够很好地处理简单的、类似记录的数据,要比使用 DOM 简单得多。可以自己尝试一下 SimpleXML。应该是 可以成为 PHP 中一种可靠、健壮的 XML 处理方法。

    下面,假设需要一个 PHP 页面将 RSS 提要(feed)转化成 HTML,我们开始使用 SimpleXML来完成,如何下手呢,接着看吧!

    点击此处阅读全文
    展开全文
  • 进程

    千次阅读 2020-10-23 08:42:09
    通常,现在的操作系统都支持多任务,意味着操作系统(给用户)造成了种假象,(让用户觉得) 它同时能够做多件事情,事实,它是快速地轮换执行这些任务的。Linux 内核通过使用进程,来 管理多任务。通过进程,...

    通常,现在的操作系统都支持多任务,意味着操作系统(给用户)造成了一种假象,(让用户觉得) 它同时能够做多件事情,事实上,它是快速地轮换执行这些任务的。Linux 内核通过使用进程,来 管理多任务。通过进程,Linux 安排不同的程序等待使用 CPU。

    有时候,计算机变得呆滞,运行缓慢,或者一个应用程序停止响应。在这一章中,我们将看一些 可用的命令行工具,这些工具帮助我们查看程序的执行状态,以及怎样终止行为不当的进程。

    这一章将介绍以下命令:

    • ps – 报告当前进程快照

    • top – 显示任务

    • jobs – 列出活跃的任务

    • bg – 把一个任务放到后台执行

    • fg – 把一个任务放到前台执行

    • kill – 给一个进程发送信号

    • killall – 杀死指定名字的进程

    • shutdown – 关机或重启系统

    进程是怎样工作的

    当系统启动的时候,内核先把一些它自己的程序初始化为进程,然后运行一个叫做 init 的程序。init, 依次地,再运行一系列的称为 init 脚本的 shell 脚本(位于/etc),它们可以启动所有的系统服务。 其中许多系统服务以守护(daemon)程序的形式实现,守护程序仅在后台运行,没有任何用户接口。 这样,即使我们没有登录系统,至少系统也在忙于执行一些例行事务。

    一个程序可以发动另一个程序,这个事实在进程方案中,表述为一个父进程创建了一个子进程。

    内核维护每个进程的信息,以此来保持事情有序。例如,系统分配给每个进程一个数字,这个数字叫做 进程 ID 或 PID。PID 号按升序分配,init 进程的 PID 总是1。内核也对分配给每个进程的内存进行跟踪。 像文件一样,进程也有所有者和用户 ID,有效用户 ID,等等。

    查看进程

    查看进程,最常使用地命令(有几个命令)是 ps。ps 程序有许多选项,它最简单地使用形式是这样的:

    [me@linuxbox ~]$ ps
    PID TTY           TIME CMD
    5198 pts/1    00:00:00 bash
    10129 pts/1   00:00:00 ps
    
    

    上例中,列出了两个进程,进程 5198 和进程 10129,各自代表命令 bash 和 ps。正如我们所看到的, 默认情况下,ps 不会显示很多进程信息,只是列出与当前终端会话相关的进程。为了得到更多信息, 我们需要加上一些选项,但是在这样做之前,我们先看一下 ps 命令运行结果的其它字段。 TTY 是 “Teletype” 的简写,是指进程的控制终端。这里,Unix 展示它的年龄。TIME 字段表示 进程所消耗的 CPU 时间数量。正如我们所看到的,这两个进程使计算机工作起来很轻松。

    如果给 ps 命令加上选项,我们可以得到更多关于系统运行状态的信息:

    [me@linuxbox ~]$ ps x
    PID TTY   STAT   TIME COMMAND
    2799 ?    Ssl    0:00 /usr/libexec/bonobo-activation-server –ac
    2820 ?    Sl     0:01 /usr/libexec/evolution-data-server-1.10 --
    
    and many more...
    
    

    加上 “x” 选项(注意没有开头的 “-“ 字符),告诉 ps 命令,展示所有进程,不管它们由什么 终端(如果有的话)控制。在 TTY 一栏中出现的 “?” ,表示没有控制终端。使用这个 “x” 选项,可以 看到我们所拥有的每个进程的信息。

    因为系统中正运行着许多进程,所以 ps 命令的输出结果很长。这经常很有帮助,要是把 ps 的输出结果 管道到 less 命令,借助 less 工具,更容易浏览。一些选项组合也会产生很长的输出结果,所以最大化 终端仿真器窗口,也是一个好主意。

    输出结果中,新添加了一栏,标题为 STAT 。STAT 是 “state” 的简写,它揭示了进程当前状态:

    表11-1: 进程状态

    状态 意义
    R 运行。这意味着,进程正在运行或准备运行。
    S 正在睡眠。 进程没有运行,而是,正在等待一个事件, 比如说,一个按键或者网络数据包。
    D 不可中断睡眠。进程正在等待 I/O,比方说,一个磁盘驱动器的 I/O。
    T 已停止. 已经指示进程停止运行。稍后介绍更多。
    Z 一个死进程或“僵尸”进程。这是一个已经终止的子进程,但是它的父进程还没有清空它。 (父进程没有把子进程从进程表中删除)
    < 一个高优先级进程。这可能会授予一个进程更多重要的资源,给它更多的 CPU 时间。 进程的这种属性叫做 niceness。具有高优先级的进程据说是不好的(less nice), 因为它占用了比较多的 CPU 时间,这样就给其它进程留下很少时间。
    N 低优先级进程。 一个低优先级进程(一个“好”进程)只有当其它高优先级进程执行之后,才会得到处理器时间。

    进程状态信息之后,可能还跟随其他的字符。这表示各种外来进程的特性。详细信息请看 ps 手册页。

    另一个流行的选项组合是 “aux”(不带开头的”-“字符)。这会给我们更多信息:

    [me@linuxbox ~]$ ps aux
    USER   PID  %CPU  %MEM     VSZ    RSS  TTY   STAT   START   TIME  COMMAND
    root     1   0.0   0.0    2136    644  ?     Ss     Mar05   0:31  init
    root     2   0.0   0.0       0      0  ?     S&lt;     Mar05   0:00  [kt]
    
    and many more...
    
    

    这个选项组合,能够显示属于每个用户的进程信息。使用这个选项,可以唤醒 “BSD 风格” 的输出结果。 Linux 版本的 ps 命令,可以模拟几个不同 Unix 版本中的 ps 程序的行为。通过这些选项,我们得到 这些额外的列。

    表11-2: BSD 风格的 ps 命令列标题

    标题 意思
    USER 用户 ID. 进程的所有者。
    %CPU 以百分比表示的 CPU 使用率
    %MEM 以百分比表示的内存使用率
    VSZ 虚拟内存大小
    RSS 进程占用的物理内存的大小,以千字节为单位。
    START 进程运行的起始时间。若超过24小时,则用天表示。

    用 top 命令动态查看进程

    虽然 ps 命令能够展示许多计算机运行状态的信息,但是它只是提供,ps 命令执行时刻的机器状态快照。 为了看到更多动态的信息,我们使用 top 命令:

    [me@linuxbox ~]$ top
    
    

    top 程序连续显示系统进程更新的信息(默认情况下,每三分钟更新一次),”top”这个名字 来源于这个事实,top 程序是用来查看系统中“顶端”进程的。top 显示结果由两部分组成: 最上面是系统概要,下面是进程列表,以 CPU 的使用率排序。

    top - 14:59:20 up 6:30, 2 users, load average: 0.07, 0.02, 0.00
    Tasks: 109 total,   1 running,  106 sleeping,    0 stopped,    2 zombie
    Cpu(s): 0.7%us, 1.0%sy, 0.0%ni, 98.3%id, 0.0%wa, 0.0%hi, 0.0%si
    Mem:   319496k total,   314860k used,   4636k free,   19392k buff
    Swap:  875500k total,   149128k used,   726372k free,  114676k cach
    
     PID  USER       PR   NI   VIRT   RES   SHR  S %CPU  %MEM   TIME+    COMMAND
    6244  me         39   19  31752  3124  2188  S  6.3   1.0   16:24.42 trackerd
    ....
    
    

    其中系统概要包含许多有用信息。下表是对系统概要的说明:

    表11-3: top 命令信息字段

    行号 字段 意义
    1 top 程序名。
    14:59:20 当前时间。  
    up 6:30 这是正常运行时间。它是计算机从上次启动到现在所运行的时间。 在这个例子里,系统已经运行了六个半小时。  
    2 users 有两个用户登录系统。  
    load average: 加载平均值是指,等待运行的进程数目,也就是说,处于运行状态的进程个数, 这些进程共享 CPU。展示了三个数值,每个数值对应不同的时间周期。第一个是最后60秒的平均值, 下一个是前5分钟的平均值,最后一个是前15分钟的平均值。若平均值低于1.0,则指示计算机 工作不忙碌。  
    2 Tasks: 总结了进程数目和各种进程状态。
    3 Cpu(s): 这一行描述了 CPU 正在执行的进程的特性。
    0.7%us 0.7% of the CPU is being used for user processes. 这意味着进程在内核之外。  
    1.0%sy 1.0%的 CPU 时间被用于系统(内核)进程。  
    0.0%ni 0.0%的 CPU 时间被用于"nice"(低优先级)进程。  
    98.3%id 98.3%的 CPU 时间是空闲的。  
    0.0%wa 0.0%的 CPU 时间来等待 I/O。  
    4 Mem: 展示物理内存的使用情况。
    5 Swap: 展示交换分区(虚拟内存)的使用情况。

    top 程序接受一系列从键盘输入的命令。两个最有趣的命令是 h 和 q。h,显示程序的帮助屏幕,q, 退出 top 程序。

    两个主要的桌面环境都提供了图形化应用程序,来显示与 top 程序相似的信息 (和 Windows 中的任务管理器差别不多),但是我觉得 top 程序要好于图形化的版本, 因为它运行速度快,并且消费很少的系统资源。毕竟,我们的系统监测程序不能成为 系统怠工的源泉,而这是我们试图追踪的信息。

    控制进程

    现在我们可以看到和监测进程,然后得到一些对它们的控制权。为了我们的实验,我们将使用 一个叫做 xlogo 的小程序,作为我们的实验品。这个 xlogo 程序是 X 窗口系统 (底层引擎使图形界面显示在屏幕上)提供的实例程序,这个实例简单地显示一个大小可调的 包含 X 标志的窗口。首先,我们需要知道测试的主题:

    [me@linuxbox ~]$ xlogo
    
    

    命令执行之后,一个包含 X 标志的小窗口应该出现在屏幕的某个位置上。在一些系统中,xlogo 命令 会打印一条警告信息,但是不用理会它。

    小贴士:如果你的系统不包含 xlogo 程序,试着用 gedit 或者 kwrite 来代替。

    通过调整它的窗口大小,我们能够证明 xlogo 程序正在运行。如果这个标志以新的尺寸被重画, 则这个程序正在运行。

    注意,为什么我们的 shell 提示符还没有返回?这是因为 shell 正在等待这个程序结束, 就像到目前为止我们用过的其它所有程序一样。如果我们关闭 xlogo 窗口,shell 提示符就返回了。

    中断一个进程

    我们再运行 xlogo 程序一次,观察一下发生了什么事。首先,执行 xlogo 命令,并且 证实这个程序正在运行。下一步,回到终端窗口,按下 Ctrl-c。

    [me@linuxbox ~]$ xlogo
    [me@linuxbox ~]$
    
    

    在一个终端中,输入 Ctrl-c,中断一个程序。这意味着,我们礼貌地要求终止这个程序。 输入 Ctrl-c 之后,xlogo 窗口关闭,shell 提示符返回。

    通过这个技巧,许多(但不是全部)命令行程序可以被中断。

    把一个进程放置到后台(执行)

    比方说,我们想让 shell 提示符返回,却没有终止 xlogo 程序。为达到这个目的,我们把 这个程序放到后台执行。把终端看作是一个有前台(表层放置可见的事物,像 shell 提示符) 和后台(表层之下放置隐藏的事物)(的设备)。启动一个程序,让它立即在后台 运行,我们在程序命令之后,加上”&”字符:

    [me@linuxbox ~]$ xlogo &
    [1] 28236
    [me@linuxbox ~]$
    
    

    执行命令之后,这个 xlogo 窗口出现,并且 shell 提示符返回,同时打印一些有趣的数字。 这条信息是 shell 特性的一部分,叫做工作控制。通过这条信息,shell 告诉我们,已经启动了 工作号为1(“[1]”),PID 为28236的程序。如果我们运行 ps 命令,可以看到我们的进程:

    [me@linuxbox ~]$ ps
      PID TTY         TIME   CMD
    10603 pts/1   00:00:00   bash
    28236 pts/1   00:00:00   xlogo
    28239 pts/1   00:00:00   ps
    
    

    工作控制,这个 shell 功能可以列出从终端中启动的任务。执行 jobs 命令,我们可以看到这个输出列表:

    [me@linuxbox ~]$ jobs
    [1]+ Running            xlogo &
    
    

    结果显示我们有一个任务,编号为“1”,它正在运行,并且这个任务的命令是 xlogo &。

    进程返回到前台

    一个在后台运行的进程对一切来自键盘的输入都免疫,也不能用 Ctrl-c 来中断它。使用 fg 命令,让一个进程返回前台执行:

    [me@linuxbox ~]$ jobs
    [1]+ Running        xlogo &
    [me@linuxbox ~]$ fg %1
    xlogo
    
    

    fg 命令之后,跟随着一个百分号和工作序号(叫做 jobspec)。如果我们只有一个后台任务,那么 jobspec 是可有可无的。输入 Ctrl-c 来终止 xlogo 程序。

    停止一个进程

    有时候,我们想要停止一个进程,而没有终止它。这样会把一个前台进程移到后台等待。 输入 Ctrl-z,可以停止一个前台进程。让我们试一下。在命令提示符下,执行 xlogo 命令, 然后输入 Ctrl-z:

    [me@linuxbox ~]$ xlogo
    [1]+ Stopped                 xlogo
    [me@linuxbox ~]$
    
    

    停止 xlogo 程序之后,通过调整 xlogo 的窗口大小,我们可以证实这个程序已经停止了。 它看起来像死掉了一样。使用 fg 命令,可以恢复程序到前台运行,或者用 bg 命令把程序移到后台。

    [me@linuxbox ~]$ bg %1
    [1]+ xlogo &
    [me@linuxbox ~]$
    
    

    和 fg 命令一样,如果只有一个任务的话,jobspec 参数是可选的。

    因为把一个进程从前台移到后台很方便,如果我们从命令行启动一个图形界面的程序,但是 忘记把它放到后台执行,即没有在命令后加上字符”&”,(也不用担心)。

    为什么要从命令行启动一个图形界面程序呢?有两个原因。第一个,你想要启动的程序,可能 没有在窗口管理器的菜单中列出来(比方说 xlogo)。第二个,从命令行启动一个程序, 你能够看到一些错误信息,如果从窗口系统中运行程序的话,这些信息是不可见的。有时候, 一个程序不能从图形界面菜单中启动。这时候,应该从命令行中启动它。我们可能会看到 错误信息,这些信息揭示了问题所在。一些图形界面程序还有许多有意思并且有用的命令行选项。

    Signals

    kill 命令被用来“杀死”程序。这样我们就可以终止需要杀死的程序。这里有一个实例:

    [me@linuxbox ~]$ xlogo &
    [1] 28401
    [me@linuxbox ~]$ kill 28401
    [1]+ Terminated               xlogo
    
    

    首先,我们在后台启动 xlogo 程序。shell 打印出 jobspec 和这个后台进程的 PID。下一步,我们使用 kill 命令,并且指定我们想要终止的进程 PID。也可以用 jobspec(例如,“%1”)来代替 PID。

    虽然这个命令很直接了当,但不仅仅这些。这个 kill 命令不是确切地“杀死”程序,而是给程序 发送信号。信号是操作系统与程序之间进行通信,所采用的几种方式中的一种。我们已经看到 信号,在使用 Ctrl-c 和 Ctrl-z 的过程中。当终端接受了其中一个按键组合后,它会给在前端运行 的程序发送一个信号。在使用 Ctrl-c 的情况下,会发送一个叫做 INT(中断)的信号;当使用 Ctrl-z 时,则发送一个叫做 TSTP(终端停止)的信号。程序,反过来,倾听信号的到来,当程序 接到信号之后,则做出响应。一个程序能够倾听和响应信号,这个事实允许一个程序做些事情, 比如,当程序接到一个终止信号时,它可以保存所做的工作。

    通过 kill 命令给进程发送信号

    kill 命令被用来给程序发送信号。它最常见的语法形式看起来像这样:

    kill [-signal] PID...
    
    

    如果在命令行中没有指定信号,那么默认情况下,发送 TERM(终止)信号。kill 命令被经常 用来发送以下命令:

    表 11-4: 常用信号
    | 编号 | 名字 | 含义 |
    | 1 | HUP | 挂起。这是美好往昔的痕迹,那时候终端机通过电话线和调制解调器连接到 远端的计算机。这个信号被用来告诉程序,控制的终端机已经“挂起”。 通过关闭一个终端会话,可以说明这个信号的作用。发送这个信号到终端机上的前台程序,程序会终止。

    许多守护进程也使用这个信号,来重新初始化。这意味着,当发送这个信号到一个守护进程后, 这个进程会重新启动,并且重新读取它的配置文件。Apache 网络服务器守护进程就是一个例子。

    |
    | 2 | INT | 中断。实现和 Ctrl-c 一样的功能,由终端发送。通常,它会终止一个程序。 |
    | 9 | KILL | 杀死。这个信号很特别。鉴于进程可能会选择不同的方式,来处理发送给它的 信号,其中也包含忽略信号,这样呢,从不发送 Kill 信号到目标进程。而是内核立即终止 这个进程。当一个进程以这种方式终止的时候,它没有机会去做些“清理”工作,或者是保存劳动成果。 因为这个原因,把 KILL 信号看作杀手锏,当其它终止信号失败后,再使用它。 |
    | 15 | TERM | 终止。这是 kill 命令发送的默认信号。如果程序仍然“活着”,可以接受信号,那么 这个信号终止。 |
    | 18 | CONT | 继续。在停止一段时间后,进程恢复运行。 |
    | 19 | STOP | 停止。这个信号导致进程停止运行,而没有终止。像 KILL 信号,它不被 发送到目标进程,因此它不能被忽略。 |

    让我们实验一下 kill 命令:

    [me@linuxbox ~]$ xlogo &
    [1] 13546
    [me@linuxbox ~]$ kill -1 13546
    [1]+ Hangup         xlogo
    
    

    在这个例子里,我们在后台启动 xlogo 程序,然后通过 kill 命令,发送给它一个 HUP 信号。 这个 xlogo 程序终止运行,并且 shell 指示这个后台进程已经接受了一个挂起信号。在看到这条 信息之前,你可能需要多按几次 enter 键。注意,既可以用号码,也可以用名字,不过要在名字前面 加上字母“SIG”,来指定所要发送的信号。

    [me@linuxbox ~]$ xlogo &
    [1] 13546
    [me@linuxbox ~]$ kill -1 13546
    [1]+ Hangup                    xlogo
    
    

    重复上面的例子,试着使用其它的信号。记住,你也可以用 jobspecs 来代替 PID。

    进程,和文件一样,拥有所有者,所以为了能够通过 kill 命令来给进程发送信号, 你必须是进程的所有者(或者是超级用户)。

    除了上表列出的 kill 命令最常使用的信号之外,还有一些系统频繁使用的信号。以下是其它一些常用 信号列表:

    表 11-5: 其它常用信号
    | 编号 | 名字 | 含义 |
    | 3 | QUIT | 退出 |
    | 11 | SEGV | 段错误。如果一个程序非法使用内存,就会发送这个信号。也就是说, 程序试图写入内存,而这个内存空间是不允许此程序写入的。 |
    | 20 | TSTP | 终端停止。当按下 Ctrl-z 组合键后,终端发送这个信号。不像 STOP 信号, TSTP 信号由目标进程接收,且可能被忽略。 |
    | 28 | WINCH | 改变窗口大小。当改变窗口大小时,系统会发送这个信号。 一些程序,像 top 和 less 程序会响应这个信号,按照新窗口的尺寸,刷新显示的内容。 |

    为了满足读者的好奇心,通过下面的命令可以得到一个完整的信号列表:

    [me@linuxbox ~]$ kill -l
    
    

    通过 killall 命令给多个进程发送信号

    也有可能通过 killall 命令,给匹配特定程序或用户名的多个进程发送信号。下面是 killall 命令的语法形式:

    killall [-u user] [-signal] name...
    
    

    为了说明情况,我们将启动一对 xlogo 程序的实例,然后再终止它们:

    [me@linuxbox ~]$ xlogo &
    [1] 18801
    [me@linuxbox ~]$ xlogo &
    [2] 18802
    [me@linuxbox ~]$ killall xlogo
    [1]- Terminated                xlogo
    [2]+ Terminated                xlogo
    
    

    记住,和 kill 命令一样,你必须拥有超级用户权限才能给不属于你的进程发送信号。

    更多和进程相关的命令

    因为监测进程是一个很重要的系统管理任务,所以有许多命令与它相关。玩玩下面几个命令:

    表11-6: 其它与进程相关的命令
    | 命令名 | 命令描述 |
    | pstree | 输出一个树型结构的进程列表,这个列表展示了进程间父/子关系。 |
    | vmstat | 输出一个系统资源使用快照,包括内存,交换分区和磁盘 I/O。 为了看到连续的显示结果,则在命令名后加上延时的时间(以秒为单位)。例如,“vmstat 5”。 终止输出,按下 Ctrl-c 组合键。 |
    | xload | 一个图形界面程序,可以画出系统负载的图形。 |
    | tload | 与 xload 程序相似,但是在终端中画出图形。使用 Ctrl-c,来终止输出。

    展开全文
  • 你必须知道的495C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    可我刚刚在一个ANSI编译器尝试过,其结果正如我所期望的。 3.12 我不想学习那些复杂的规则,怎样才能避免这些未定义的求值顺序问题呢? 其他的表达式问题 *3.13 ++i和i++有什么区别? 3.14 如果我不使用...
  • finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法, 可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。 24、数组有没有length()这个方法?String有没有length()...
  • 《你必须知道的495C语言问题》

    热门讨论 2010-03-20 16:41:18
    可我刚刚在一个ANSI编译器尝试过,其结果正如我所期望的。 38  3.12 我不想学习那些复杂的规则,怎样才能避免这些未定义的求值顺序问题呢? 38 其他的表达式问题 39 *3.13 ++i和i++有什么区别? 39 3.14 ...
  • 可我刚刚在一个ANSI编译器尝试过,其结果正如我所期望的。 38  3.12 我不想学习那些复杂的规则,怎样才能避免这些未定义的求值顺序问题呢? 38 其他的表达式问题 39 *3.13 ++i和i++有什么区别? 39 3.14 ...
  • 3.1.4 创建一个新的crontab文件 24 3.1.5 列出crontab文件 24 3.1.6 编辑crontab文件 24 3.1.7 删除crontab文件 25 3.1.8 恢复丢失的crontab文件 25 3.2 at命令 25 3.2.1 使用at命令提交命令或脚本 26 3.2.2 列出所...
  • 3.1.4 创建一个新的crontab文件 24 3.1.5 列出crontab文件 24 3.1.6 编辑crontab文件 24 3.1.7 删除crontab文件 25 3.1.8 恢复丢失的crontab文件 25 3.2 at命令 25 3.2.1 使用at命令提交命令或脚本 26 3.2.2 列出所...
  • 你必须知道的495C语言问题(PDF)

    热门讨论 2009-09-15 10:25:47
    4.9 我怎样一个int 变量转换为char * 型?我试了类型转换, 但是不 行。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5 空(null) 指针21 5.1 臭名昭著的空指针到底是什么? . . . . . ...
  • 1.3.1 Windows Sockets是一个开放的标准 1.3.2 Windows Sockets提供源代码可移植性 1.3.3 Windows Sockets支持动态链接 1.3.4 Windows Sockets的优点 1.4 Windows Sockets的前景 1.5 结论 第2章 Windows Sockets的...
  • 作者Eldad Eilam以一个解说人的身份为我们详尽地评述了双方使用的每一招每一式的优点与不足。 书中包含的主要内容有:操作系统的逆向工程;.NET平台的逆向工程;逆向未公开的文件格式和网络协议;逆向工程的合法性...
  • 1.3.1 Windows Sockets是一个开放的标准 1.3.2 Windows Sockets提供源代码可移植性 1.3.3 Windows Sockets支持动态链接 1.3.4 Windows Sockets的优点 1.4 Windows Sockets的前景 1.5 结论 第2章 Windows Sockets的...
  • o 5.9 我怎样一个 int 变量转换为 char * 型?我试了类型转换, 但是不行。 * 6. 空 (null) 指针 o 6.1 臭名昭著的空指针到底是什么? o 6.2 怎样在程序里获得一个空指针? o 6.3 用缩写的指针比较 ``if(p)...
  • Tcl_TK编程权威指南pdf

    热门讨论 2011-03-25 09:30:55
    我一直使自己在很大程度保持着一个Tcl程序员的角色,而我们工作组中的其他人员则埋头于Tcl本身的C语言实现。我创建的应用程序有HTML编辑器、EMAIL比用户接口程序、Web服务器以及用户数据库,我们的商务应用就建立...
  • 2.4.2 调用上一条历史命令的快捷键是? 2.4.3 交换机工作在OSI七层的哪一层? 2.4.4 以下对CSMA/CD描述正确的是? 2.4.5 以下对STORE ANDFORWARD描述正确的是? 2.4.6 以下对交换机工作方式描述正确的是? ...
  • C#微软培训教材(高清PDF)

    千次下载 热门讨论 2009-07-30 08:51:17
    第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 析 .20 3.3 运 行 程 序 .23 .4 添 加 注 释 .25 3.5 小 结 .27 第二部分 C#程序设计基础.28 第四章 数 据 类 型 .28 4.1 值 类 型...
  • C#微软培训资料

    2014-01-22 14:10:17
    第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 析 .20 3.3 运 行 程 序 .23 .4 添 加 注 释 .25 3.5 小 结 .27 第二部分 C#程序设计基础.28 第四章 数 据 类 型 .28 4.1 值 类 型...
  • LINUX 24学时教程

    2011-10-21 18:33:38
    3.2.4 一个快速录音命令脚本程序 36 3.2.5 配置声卡的简单方法 37 3.3 激活PCMCIA卡的服务程序 37 3.4 使用COAS配置网络信息 40 3.5 在OpenLinux操作系统中使用艾美加 (Iomega)公司的Zip驱动器 42 3.6 课时小结 43...
  • 关于Ghostcat(幽灵猫CVE-2020-1938漏洞):CNVD-2020-10487(CVE-2020-1938), tomcat ajp 文件读取漏洞poc|Java版本POC|Tomcat-Ajp协议文件读取漏洞|又一个python版本CVE-2020-1938漏洞检测|CVE-2020-1938-漏洞复现...
  •  PsExec 是一个轻型的 telnet 替代工具,它使您无需手动安装客户端软件即可执行其他系统的进程,并且可以获得与控制台应用程序相当的完全交互性。PsExec 最强大的功能之一是在远程系统和远程支持工具(如 ...
  • word使用技巧大全

    热门讨论 2011-03-18 20:37:53
    24、如何将一个表格垂直拆分为两个的表格 87 25、巧用Word的扩展选定功能 87 26、Excel单元格多于15位数字的输入 87 27、Word中磅与厘米的换算 87 28、计算机中容量单位的换算 88 29、在Excel中复制上一单元格 88 30...
  •  本书分为三个部分,每个部分对—组彼此相关的问题进行探讨,内容从MySQL和开源运动的发展,到扩展和定制MySQL系统,甚至还讲述了如何建立一个实验性查询优化器和执行引擎来替代MySQL查询引擎等。  第一部分  ...
  • 5.5.2 回滚一个事务 155 5.6 数据一致性和数据并发性 155 5.6.1 数据库写入器和写前协议 155 5.6.2 SCN 156 5.6.3 撤销管理 156 5.7 备份与恢复体系结构 157 5.7.1 用户管理的备份与恢复 157 5.7.2 ...

空空如也

空空如也

1 2 3 4 5 6
收藏数 117
精华内容 46
关键字:

怎样快速执行上一个命令