2018-12-28 16:08:35 haidian_fengyu 阅读数 1000
  • Linux系统编程、网络编程》第6章 信号

    课程内容: 学习本章的意义、Linux下都有哪些信号、signal函数、子进程对父进程信号的集成情况、kill、raise、alarm、pause、abort函数、信号休眠函数的唤醒、信号的发送、接收和处理的过程、如何调用API修改信号的屏蔽字。

    323 人正在学习 去看看 张先凤

1. vim kill-process.sh

#!/bin/bash
#杀死本进程(fortune.jar),再启动

pids=$(ps -ef | grep jbt-ms-fortune.jar | grep -v grep | awk '{print $2}')
#如果不为空
if [[ ! -z "$pids" ]]
then
    for i in $pids
        do
            echo "Kill the process [$i]"
            kill -9 $i
        done
else
    echo empty
fi

nohup java -jar fortune.jar --spring.profiles.active=prod &

 

2.给kill-process.sh可执行权限

chmod +x kill-process.sh

2018-01-21 22:20:11 maizousidemao 阅读数 292
  • Linux系统编程、网络编程》第6章 信号

    课程内容: 学习本章的意义、Linux下都有哪些信号、signal函数、子进程对父进程信号的集成情况、kill、raise、alarm、pause、abort函数、信号休眠函数的唤醒、信号的发送、接收和处理的过程、如何调用API修改信号的屏蔽字。

    323 人正在学习 去看看 张先凤

在配置系统文件时需要管理员权限,为避免每次sudo提权,就索性切换到了管理员,但在执行某一个命令后,误按了Ctrl+Z,导致后来exit命令无法退出root。

终端提示:There are stopped jobs. 如下图:
这里写图片描述

然后就想着杀死进程,于是,
输入命令:ps(查看进程PID),kill 18743(PID),仍无法退出,如下图:
这里写图片描述

于是在网上搜索问题,都是说kill之后就可以了,然而我的问题不是这样。
后来搜索kill命令说明,有一个kill -9很厉害,于是试了试,果然可以,如下图:
这里写图片描述

对于其他操作由于Ctrl+Z导致的此类问题,这一方法同样适用。

2017-09-25 23:05:59 u012720371 阅读数 151
  • Linux系统编程、网络编程》第6章 信号

    课程内容: 学习本章的意义、Linux下都有哪些信号、signal函数、子进程对父进程信号的集成情况、kill、raise、alarm、pause、abort函数、信号休眠函数的唤醒、信号的发送、接收和处理的过程、如何调用API修改信号的屏蔽字。

    323 人正在学习 去看看 张先凤

将工作丢到后台执行:&

将工作丢到后台并暂停: [ctrl+z]

查看后台工作

jobs [-lrs]
  • -l:除了列出job number与命令串之外,同时列出PID
  • -r:仅列出正在后台run的工作
  • -s:仅列出正在后台暂停的工作

将工作拿到前台来处理

fg %jobnumber
fg表示foreground

让工作在后台的状态变为运行中

bg %jobnumber

管理后台工作

kill [-signal] [-l] [%jobnumber|PID]
  • -l:列出目前kill能够使用的信号signal有哪些
  • -signal:代表给予后面接的那个工作什么样的指示
    • -1:重新读取一次参数的配置文件,相当于重启一个进程
    • -2:代表与由键盘输入[ctrl+c]一样的操作
    • -9:立刻强制删除一个工作
    • -15:以正常的程序方式终止一项工作,与-9不一样
    • -19:暂停一个进程,相当于[ctrl+z]

脱机管理

nohub [command] [&]

以上介绍的将程序挂在后台运行的方式,在退出终端后都会中断掉,nohub命令可以将程序进行脱机运行,即在退出终端后,程序依然会继续执行

进程查看

静态查看呢

ps aux      <== 查看系统所有的进程数据
ps -lA      <== 也是能够查看所有系统的数据
ps axjf     <== 连同部分进程树状态

显示结果

  UID   PID   PPID        F CPU PRI NI       SZ    RSS WCHAN   S        ADDR TTY        TIME CMD
501 47989  47987     4006   0  31  0  2491256    6180 -      Ss          0 ttys000    0:00.02 /Applications/iT
501 47991  47990     4006   0  31  0  2499064    3372 -      S           0 ttys000    0:00.14 -zsh
501 43675  31944     4006   0  31  0  2499124    4172 -      Ss+         0 ttys002    0:00.22 /usr/local/bin/z
  • F:代表这个进程标志,说明这个进程的权限
    • 若为4表示此进程的权限为root
    • 若为1表示此子进程仅可复制而无法实际执行
  • S:代表这个进程的状态
    • R(running):该进程正在运行中
    • S(sleep):该进程目前正在睡眠状态,但可以被唤醒
    • D:不可被唤醒的睡眠状态,通常这个进程可能在等待I/O的情况
    • T(stop):停止状态,可能是工作控制(后台暂停)或排错状态
    • Z(zombie):“僵尸”状态,进程已经终止但却无法被删除
  • UID/PID/PPID:代表该进程被该UID所拥有/进程的PID号码/此进程的父进程PID的号码
  • C:代表cpu使用率
  • PRI/NI:Priority/Nice的缩写,代表此进程被cpu执行的优先级,数值越小代表该进程越快被cpu执行
  • ADDR/SZ/WCHAN:都与内存有关,ADDR指该进程在内存的哪个部分,SZ表示该进程用掉多少内存,WCHAN表示目前程序是否运行中,-表示正在运行
  • TTY:登录者多终端机位置,
  • TIME:使用掉的cpu时间,
  • CMD:表示触发此进程的命令

动态查看

top [-d 数字] | top [-bnp]
  • -d:后面可以接秒数,即整个进程界面更新的秒数,默认5秒
  • -b:以批次多方式执行top
  • -n:与-b搭配,意义是需要进行几次top多输出结果
  • -p:指定某些个PID来进行查看监测
  • top执行过程中可使用多按键命令
    • ?:显示在top当中可以输入的按键指令
    • P:以cpu的使用资源排序显示
    • M:以内存的使用资源排序显示
    • N:以PID来排序
    • T:由进程使用多cpu时间累积来排序
    • k:给予某个PID一个信号
    • r:给予某个PID重新制定一个nice值
    • q:离开top

查看进程关联

pstree [-A|U] [-up]
  • -A:各进程树之间的连接以ASCII字符来连接
  • -U:各进程树之间的连接以utf8码的字符来连接
  • -u:同时列出每个进程的PID
  • -p:同时列出每个进程的所属账号名称
2011-05-11 18:08:00 jarvis_xian 阅读数 1148
  • Linux系统编程、网络编程》第6章 信号

    课程内容: 学习本章的意义、Linux下都有哪些信号、signal函数、子进程对父进程信号的集成情况、kill、raise、alarm、pause、abort函数、信号休眠函数的唤醒、信号的发送、接收和处理的过程、如何调用API修改信号的屏蔽字。

    323 人正在学习 去看看 张先凤

    首先需要得到待删进程的PID,继而用kill指令杀之。

   

    指令如下:

    ps aux                //查找进程PID

    kill -9 PID          

 

    若通过ctrl+z 使进程进入后台,而现在又想提取进程到前台执行的话,只需键入命令 fg 即可。

Linux 控制进程

阅读数 302

Linux 进程管理

阅读数 286

没有更多推荐了,返回首页