这里简单介绍一个自己写的检测某个进程是否存在的bash小脚本。直接上代码。 1 2 3 4 5 6 7 8 #!.../bin/bash ps_out=`ps -ef | grep $1 | grep -v 'grep' | grep -v $0` result=$(echo $ps_out | grep "$1")...8000,我们想检测这个进程是否存在,可以这样。...1 2 17:38:07-androidyue~/osc_git/shell_works (master)$ ....Read More http://stackoverflow.com/questions/2903354/bash-script-to-check-running-process/24140715#24140715
;或者在抢占式调度方式中,高优先级进程强制抢占了正在执行的低优先级进程 运行态-->终止态:个进程已完成或发生某种特殊事件,进程将变为终止状态。...假如cp进程结束了,但是结束的过程出现了某种意外,使得bash这个父进程不知道它已经结束了(此例中是不可能出现这种情况的),那么bash就不会通知内核回收进程列表中的cp表项,cp此时就成了僵尸进程。...那是否可以理解为所有命令、脚本其运行环境都是在子shell中呢?显然,上面所说的bash内置命令不是在子shell中运行的。其他的所有方式,都是在子shell中完成,只不过方式不尽相同。...一般对于简单的后台持续运行进程,使用nohup足以。 另外,在子shell中的后台进程在终端被关闭时也会脱离终端,因此也不受shell和终端的控制。...三种方式可以改变因终端中断发送sighup而导致子进程也被结束的行为:一是使用nohup命令启动进程,它会忽略所有的sighup信号,使得该进程不会随着终端退出而结束;二是将待执行命令放入子shell中并放入后台运行
停止进程 9 SIGKILL 无条件终止进程 15 SIGTERM 尽可能终止进程 …… 默认情况下,bash shell会忽略收到的任何SIGOUT(3)和SIGTERM(15...16.1.2 生成信号 bash shell允许用键盘上的组合键生成两种进本的linux信号。 1.中断进程 Ctrl+c会生成SIGINT信号。会发送给当前在shell中运行的所有进程。...2.暂停进程 在进程运行时暂停进程,无需终止它。让程序继续保留在内存中,并能从上次停止的位置继续运行。 有时打开了一个关键的系统文件锁,这就比较危险了。...但是这样可以在不终止进程的情况下能深入脚本内部一窥究竟。 Ctrl+z 会生成一个SIGTSTP信号,停止shell中运行的任何进程。...后台进程结束时,会在终端显示一条消息表明已经结束了。 注意:后台进程运行时,任然会使用终端显示器来显示STDOUT和STDERR消息。
在子进程退出且父进程完成回收前,子进程变成僵尸进程。僵尸进程持续的时间通常比较短,在父进程回收它的资源后就会消亡。如果父进程没有处理子进程的终止,那么子进程就会一直处于僵尸状态。...会话是用户登录系统到退出的所有活动,从登录到结束前创建的所有进程都属于这次会话。登录后第一个被创建的进程(通常是 shell),被称为 会话 leader。 进程组用于作业控制。...我们可以在终端输入特殊字符向前台进程发送信号: Ctrl + c 发送 SIGINT 信号,默认行为是终止进程; Ctrl + \ 发送 SIGQUIT 信号,默认行为是终止进程,并进行 core dump...如果想让运用在后台的进程不随着 session 的结束而退出,可以使用 nohup 命令忽略 SIGHUP 信号: $ nohup command >cmd.log 2>&1 & 即使 shell 结束...,运行于后台的进程也能无视 SIGHUP 信号继续执行。
在 UNIX 系统中, 用户通过终端登录系统后得到一个 Shell 进程, 这个终端成为 Shell进程的控制终端。...在同一个会话中可以运行同时存在多个进程组,但是,任何时刻,只允许一个前台进程组,可以运行多个后台进程组!需要注意的是只有前台进程组可以获取到标准输入!后台不能获取标准输入!...在Shell的管理下,控制单元并非单个进程,而是作业或进程组。前台作业可能由多个进程联合执行,同样,后台作业也可以由一系列进程共同构成。...Shell能够同时管理一个前台作业和多个后台作业,这种能力我们称之为作业控制。通过这种方式,用户可以在不中断前台操作的前提下,有效地调度和监控后台任务。...5 守护进程 守护进程,又称为Daemon:守护进程是一种在操作系统后台运行的进程,它通常在系统启动时开始运行,并在系统关闭时终止。它独立于任何控制终端,不会因为用户登录或注销而受到影响。
trap HUP INT QUIT TSTP #或 trap - HUP INT QUIT TSTP (3)挂载Shell进程结束前需要执行的命令。格式为:trap “commands” EXIT。...终端连接断开,会向当前终端连接会话关联的所有前台和后台进程组发送SIGHUP信号,用于终止进程。 SIGINT 2 终止进程 程序终止(interrupt)信号, 通常是Ctrl+C发出。...SIGQUIT 3 终止进程 和SIGINT类似,通常是Ctrl+/发出。进程在收到SIGQUIT信号退出时会产生core文件, 在这个意义上类似于一个程序错误信号。...SIGKILL 9 终止进程 用来立即结束程序的运行。本信号不能被阻塞, 处理和忽略。 SIGSEGV 11 终止进程,建立CORE文件 段错误(Segmentation Fault)信号。...SIGTERM 15 终止进程 程序结束(Terminate)信号, 与SIGKILL不同的是该信号可以被阻塞和处理。通常用来要求程序自己正常退出。Shell命令kill缺省产生这个信号。
后台执行 比较下 & 与 nohup: & :后台运行,但用户终端退出时(断连),命令结束 nohup test.sh & : 后台运行,用户终端退出时(断连)依然保持运行,可使用标准输入输出 & 当在前台运行某个作业时...,终端被该作业占据;可以在命令后面加上& 实现后台运行。...但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。 “+”代表最近的一个任务(当前任务),“-”代表之前的任务。...pid 前台进程的终止:ctrl+c 前后台进程的切换与控制 ctrl + z 命令 将一个正在前台执行的命令放到后台,并且处于暂停状态。...---top 使用ps -xj命令可以看到,登录shell(PID 38751)和top在同一个会话期,shell为会话期首进程,所在进程组PGID为38751,top所在进程组PGID为38779,为前台进程组
1 SIGHUP 挂起进程 2 SIGINT 终止进程 3 SIGQUIT 停止进程 9...SIGKILL 无条件终止进程 15 SIGTERM 可能的话终止进程 17 SIGSTOP 无条件停止进程...,但不是终止进程 18 SIGSTP 停止或暂停进程,但不终止进程 19 SIGCONT 继续运行停止的进程 ~~~~~~~~~~~~...~~~~~~~~~~~~~ 要在命令行界面以后台模式运行shell脚本,只要在命令后加个&就可以,可以在命令行提示符下同时启动任意多个后台作业 [root@aoi ~]# sh i & [1] 1568...jobs命令允许查看shell当前正在处理的作业。 重启停止的作业 bg 2 2是作业号 bg是以后台形式重启,此时还可以输入其他命令。
我们的推测是ssh窗口在关闭时,对当前交互的shell以及正在运行的test.sh等子进程发送某个退出的Signal,找了一台装有systemtap的机器来验证,所用的stap脚本是从涧泉同学那里copy...按照这个线索我们google后了解到: shell在非交互模式下对后台进程处理SIGINT信号时设置的是IGNORE。...交互模式与非交互模式对作业控制(job control)默认方式不同 为什么在交互模式下shell不会对后台进程处理SIGINT信号设置为忽略,而非交互模式下会设置为忽略呢?...还是比较好理解的,举例来说,我们先某个前台进程运行时间太长,可以ctrl-z中止一下,然后通过bg %n把这个进程放入后台,同样也可以把一个cmd &方式启动的后台进程,通过fg %n放回前台,然后在ctrl-c...回到tomcat的例子,catalina.sh脚本通过start参数启动的时候,就是以非交互方式后台启动,java进程也被shell设置了忽略SIGINT信号,因此在ctrl-c结束test.sh进程时
后台启动 方法:Shell命令 & 【Enter】键 备注:后台作业:运行于后台,不接收终端的输入,但向终端输出执行结果。...除了上述基本的三种状态以外,Linux还描述进程的以下状态 挂起状态:正在运行的进程,因为某个原因失去了CPU而暂时停止运行 终止状态:进程已经结束 休眠状态:进程主动暂时停止运行 僵死状态...默认0 作业的前后台切换 bg命令 格式:bg [作业号] 功能:将前台作业切换到后台运行。说若没有指定作业号,则将当前作业切换到后台。 备注:一个或多个相关进程可以形成一个作业。...若没有指定作业号,则将后台作业序列中的第一个作业切换到后台运行。...tty1 00:03:44 Xorg kill命令 方法:kill [选项] 进程号 方法:kill % 作业号 功能:终止正在运行的进程或作业。超级用户可以终止所有的进程。
/bin/bash #用途:根据网络配置对网络地址192.168.0进行修改,检查是否是活动状态 #{start..end}shell扩展生成一组地址 for ip in 192.168.0.{1....1 'ps -e -o pid,uname,cmd,pmem,pcpu --sort=-pmem,-pcpu | head -15' ##jobs 查看后台运行的进程 jobs命令执行的结果,...(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识;也就是说,jobs命令显示的是当前shell环境中所起的后台正在运行或者被挂起的任务信息 jobs ##查看后台运营的进程号...关闭进程号12的进程 kill 12 ##等同于在前台运行PID为123的进程时按下Ctrl+C键 kill -2 123 ##如果任无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL...-ef | grep peidalinux) ##将后台中的命令调至前台继续运行 将进程123调至前台执行 fg 123 ##将一个在后台暂停的命令,变成继续执行 bg 123 ##该命令可以在你退出帐户
进程,进程号是29818 29819 pts/0 00:00:00 ps # 2、后台启动进程(用的相对较少,除非非常耗时,且不着急需要其运行结果) # 后台启动方法:在命令结尾添加一个“&...一般和"-"选项合用; -p 进程PID:仅查看指定 ID 的进程; -s:使 top 命令在安全模式中运行,避免在交互模式中出现错误; -u 用户名:只监听某个用户的进程; # 在 top 命令的显示窗口中...、系统在1、5、15分钟前的负载(不超过CPU核数) top - 10:05:39 up 4 days, 15 min, 1 user, load average: 0.00, 0.01, 0.00...1 HUP 挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。...Ctrl+Z 快捷键,命令在后台处于【暂停】状态 6、后台命令脱离终端运行# # 上面的放入后台命令 &和Ctrl+Z命令,只是当前登陆终端的后台,而不是远程服务器的后台,在程序运行结束之前退出登录,
14 SIGALRM 终止 时钟信号,alrm(2)发出的终止信号 15 SIGTERM 终止 终止信号,进程会先关闭正在运行的任务或打开的文件再终止,有时间进程在有运行的任务而忽略此信号。...不能捕捉 16 SIGSTKFLT 终止 处理器栈错误 17 SIGCHLD 可忽略 子进程结束时,父进程收到的信号 18 SIGCONT 可忽略 让终止的进程继续执行 19 SIGSTOP 停止 停止进程...,不能忽略,不能捕获 20 SIGSTP 停止 停止进程,一般是CTRL+Z 21 SIGTTIN 停止 后台进程从终端读数据 22 SIGTTOU 停止 后台进程从终端写数据 23 SIGURG 可忽略...终止 文件描述符准备就绪,可以输入/输出操作了 30 SIGPWR 终止 电源失败 31 SIGSYS CoreDump 非法系统调用 CoreDump(核心转储):当程序运行过程中异常退出时,内核把当前程序在内存状况存储在一个...: kill -s SIGTERM pid 或 kill -n 15 pid 或 kill -15 pid 或 kill -TREM pid 3、trap命令 trap命令定义shell脚本在运行时根据接收的信号做相应的处理
bash使用一个称为进程替换的功能来弥补这些不足,进程替换实际上是命令替换和管道的组合,和命令替换类似,bash运行一个命令,但令其运行于后台而不再等待其完成。...%1表示继续运行第一个后台进程,程序运行结束后会显示: [1]+ 完成 sleep 300 内置命令fg可以使后台进程返回到前台继续运行: [root@centos7...~]# fg %1 sleep 300 ^C [root@centos7 ~]# 在交互式shell或脚本中,以控制操作符&结尾的命令也会被作为后台命令异步地执行,当前shell不会等待此命令执行结束...在脚本中使用后台执行命令时需要注意,如果当前shell先于后台进程退出,会导致后台进程也随之退出(此时并没有执行完)。如果需要等待后台进程退出后父进程才退出,可以使用内置命令wait。...& done done #等待所有后台进程结束 wait 执行略
现在看看你的终端,你将看到正在运行的进程是你的shell,因此在我的系统上有一个运行bash的进程。现在请记住,当你运行ps l命令时,是从运行bash的进程中运行它的。...bash shell的PID是ps l命令的PPID。 当系统启动时,内核创建了一个名为init的进程,它的PID为1。除非系统关闭,否则无法终止init进程。...Job控制 假设你正在一个终端窗口上工作,并且正在运行一个命令,该命令将花费很长时间。在它完成之前,你不能与shell交互,但是我们希望继续在我们的机器上工作,因此我们需要打开shell。...我们可以控制我们的进程如何运行: 将工作发送到后台 在命令后添加&号将在后台运行该命令: sleep 1000 & sleep 1001 & sleep 1002 & 查看后台进程 将进程从后台移动到前台...如果不带任何选项地运行fg,它将带回最近的后台进程。 ----
] 命令功能 用来结束同名的的所有进程 命令参数 -Z 只杀死拥有scontext 的进程 -e 要求匹配进程名称 -I 忽略小写 -g 杀死进程组而不是进程 -i 交互模式,杀死进程前先询问用户 -l...killall java 向指定进程发送信号 后台运行程序:vi & 杀死 vi进程:killall -TERM vi或者killall -KILL vi > vi & [1] 18729 > killall...KILL信号将强制杀死进程 把所有的登录后的shell给杀掉 > w > killall -9 bash 运行命令:killall -9 bash 后,所有bash都会被卡掉了,所以当前所有连接丢失了...通过模糊匹配杀死所有进程 服务器运行了rumenz1,rumenz2,rumenz3进程 > killall -9 rumenz* 强制杀死rumenz1,rumenz2,rumenz3进程 终止某个用户所运行的进程...TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS UNUSED 交互式操作 如果你在杀死多个进程时不太放心
kill命令是通过向进程发送指定的信号来结束相应进程的。在默认情况下,采用编号为15的TERM信号。TERM信号将终止所有不能捕获该信号的进程。...不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。...3、可以向多个进程发信号或终止它们。 4、当kill成功地发送了信号后,shell会在屏幕上显示出进程的终止信息。...发送信号时必须小心,只有在万不得已时,才用kill信号(9),因为进程不能首先捕获它。要撤销所有的后台作业,可以输入kill 0。...因为有些在后台运行的命令会启动多个进程,跟踪并找到所有要杀掉的进程的PID是件很麻烦的事。这时,使用kill 0来终止所有由当前shell启动的进程,是个有效的方法。
领取专属 10元无门槛券
手把手带您无忧上云