添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

功能需求:

一个shell脚本,为了使用多进程,启动十几个后台运行的程序,为了防止脚本比后台进程提前结束造成不可预估的影响,现要判断是否多个后台执行的已知进程已经结束,并在所有进程结束后做出相应操作。

使用定时循环判断的方式,代码如下:

1. shell 基本语法 shell shell 是一个命令解释器,它在操作系统的最外层,负责直接与用户进行对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕反馈给用户。 什么是 shell 脚本 : 把 Linux 命令或语句放在一个文件中,通过这个程序文件去执行,这个程序为 shell 脚本 shell 程序;可以在 脚本 中输入系统的命令以及相关的语法语句组合,比如变量,流程控制语句等,把他们有机结合起来就形成了一个功能强大的 shell 脚本 。 创建 shell 程序的步骤: (1)创建一个包含命令和控制结构的文件,vim first.sh (2)修改这个 pids=`ps aux | grep mysql* | grep -v grep | awk '{print $2}'` if [ -n "$pids" ]; then kill -9 $pids 2、TODO 基本概念: Inotify 是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙 轮询 高效得多。 Inotify: #include <stdio.h> #include <string.h> #include <stdlib.h> #include <sys/inoti... 1:在bash,$!保存已执行的最后一个后台 进程 的PID。这将告诉你,无论如何,要监视什么 进程 。4:wait< n>等待直到具有ID的 进程 完成(它将阻塞,直到 进程 完成,因此您可能不想调用它,直到您确定 进程 已完成)。等待返回后, 进程 的退出代码在变量$?中返回。2,3:ps或ps | grep“$!”可以告诉你 进程 是否 仍在运行。它取决于你如何理解输出和决定它是如何接近完成。 (ps | g... shell 的后台运行(&)与nohup简述在 shell 脚本 中当我们需要把一个任务放在后台运行时,通常我们会使用&符号:subcommand &此时主 进程 会继续往下执行,而子 进程 会在后台启动运行。于此同时,我们常会看到nohup会和后台任务一起使用,格式是:nohup subcommand &nohup在这里起了什么角色呢。nohupnohup起两个作用:正如名字所声... system函数对返回值的处理,涉及3个阶段: 阶段1:创建子 进程 等准备工作。如果失败,返回-1。 阶段2:调用/bin/sh拉起 shell 脚本 ,如果拉起失败或者 shell 未正常执行 结束 (参见备注1),原因值被写入到status的低8~15比特位中。system的man中只说明了会写了127这个值,但实测发现还会写126等值。 阶段3:如果 shell 脚本 正常执行 结束 ,将 shell 返回值填到status的低8~15比特位中。 只要能够调用到/b 要监控某一 进程 ,最新先到的就是ps 命令列出所有 进程 ,然后grep自己想要的 进程 ,这样经过处理就可以得到该 进程 是否 在运行还是已经 结束 了运行。这个方法无疑可以 实现 该问题的需求,但是这里有更简单的方法,可以利用L 这是一个在 shell 脚本 中查询 进程 结束 进程 的示例: # 查询 进程 process=`ps -ef | grep "process_name" | grep -v grep | awk '{print $2}'` # 如果 进程 存在,则 结束 进程 if [[ -n "$process" ]]; then kill $process 这段代码首先使用 ps -ef 查询系统中所有正... killserver.sh #!/bin/bash ps -ef|grep 'LinuxTcpServer'|grep -v 'grep' | awk '{print $2}' |xargs kill -s 9 以后台 进程 LinuxTcpServer为例,后台进行运行情况如下: 1、 查看 进程 ’LinuxTcpServer’:ps -ef|grep ‘LinuxTcpServer’ 2、过滤掉第二个grep --color=auto LinuxTcpServer:ps -ef cur_dateTime="`date +%Y-%m-%d,%H:%M:%S`"; # wc -l 返回 进程 格式个数 count=`ps -ef |grep /usr/lib/nds.jar|grep -v "grep" | wc -l` 1 ######################################################################### 2 # File Name: getshare.sh 3 # Author: zoukch 4 ########################... Linux系统中的killall命令用于杀死指定名字的 进程 (killprocessesbyname)。 我们可以使用kill命令杀死指定 进程 PID的 进程 ,一般是需要在之前使用ps等命令再配合grep来查找 进程 ,而killall把这两个过程合二为一,是一个很好用的命令。 killall[参数][ 进程 名] 改进1---killal...