linuxshell脚本进程
㈠ linux写一个shell脚本,要实现在键盘输入一个进程号,输出这个进程号的子进程pid,怎么写
这个只能找出子进程:
read-p"码如请输入一个进程号:"value
wym=`ps-ef|sed-e's/[ ][ ]*/|/g'|cut-d"|"-f"2-4"|grep"|${value}|"|cut迟码启-d"|"-f"1"`
echo"它的子进程:"
echo"$wym"
这个可以找出所有的后代进程:通过递归调用本身函数。
read-p"输入模渣一个进程号:"p
functionmj(){
pid=`ps-ef|sed's/*/|/g'|cut-d"|"-f2-3|grep"|$1$"`
forppidin$pid;do
num=`echo"$ppid"|sed"s/|$1//g"`
echo"$num"
mj$num
done
}
mj$p
㈡ linux下如何写个SHELL脚本,每天执行这么几句命令:
1、登录CentOS7系统,打开终端,输入命令env shell打印出shell进程的环境变量。
㈢ Linux Shell自动拉起进程
新建文件夹/root/test/,test文件夹中有myCPP.cpp,myTEXT.txt,restart.sh
该文件的功能是每隔5s往myTEXT.txt中写入当前时间
编译得到可执行文件mycpp: g++ myCPP.cpp -std=c++11 -o mycpp
注意有时候因为权限问题会导致shell拉起失败,这里粗暴地开放所有权限 chmod 777 mycpp
shell脚本,检测目标程序是否处于运行状态,如果不运行则将其拉起。
加上crontab就可以让脚本定时执行,一旦发现进程没有运行,则启动该进程,这样就实现了进程漏源缺的自动拉起。
通过 crontab -e 进入类似vim的操作界面,在文件末尾补充 */1 * * * * /root/test/裂镇restart.sh /root/test/mycpp& ,让restart.sh脚本每一分钟运行一次(即每分钟检测一次mycpp是否正在执行)
查看mycpp进程是否在执行 ps -ef | grep mycpp
查看mycpp执行写入的结返辩果 tail -f myTEXT.txt
㈣ linux 2.6的shell脚本中如何kill掉 sleep进程
你是说找到系统中所有名字为sleep的进程ID,并且杀死它们,是吗?
我没有LINUX平台测试,我使用的HP-UX,下面的代码你可能需要适当调整才可以使用。
下面的命令可以找出系统中的所有进程:
ps -e
要查找所有名称为sleep的经常,有的系统可以给ps使用-n参数,例如:
ps -n sleep
但是通用一点的办法是在ps -e的结果里面grep,下面的命令即可:
ps -e | grep sleep
前面的ps命令输出了进程的ID、终端等信息,如果只需要ID内容,可以使用cut -c来获取,例如:
ps -e | cut -c1-6
获取上面输出的所有PID到内存变量的shell语句是:
pids=`ps -e | cut -c1-6`