功能需求:
一个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...