
#!/bin/sh
#使用read命令读取用户输入的数字,赋值给变量pid
read -p "Input PID: " pid
#ps命令列出所有进程,awk打印第一行标题行及进程号为pid的进程详情,输出到文件output
ps aux | awk -v n=$pid 'NR==1||$2==n{print}' >output
awk命令中,NR为内部变量,表示Number of Record,行号。$2表示第二个字段(PID)。
fork,source和exec运行脚本时的差异 使用 fork 方式运行 script 时, 就是让 shell(parent process) 产生一个 child process 去执行该 script, 当 child process 结束后, 会返回 parent process, 但 parent process 的环境是不会因 child process 的改变而改变的source 使用 source 方式运行 script 时, 就是让 script 在当前 process 内执行, 而不是产生一个 child process 来执行 由于所有执行结果均于当前 process 内完成, 若 script 的环境有所改变, 当然也会改变当前 process 环境了exec 使用 exec 方式运行script时, 它和 source 一样, 也是让 script 在当前process内执行, 但是 process 内的原代码剩下部分将被终止 同样, process 内的环境随script 改变而改变结论:通常如果我们执行时,都是默认为fork的。大家可以通过pstree命令看看关于父子进程的关系。如上,如果想让父进程得到子进程的环境变量,就是source方式了1sh的脚本[sql]#!/bin/bash A=B echo PID for 1sh before exec/source/fork:$$ export A echo 1sh: /$A is $A case $1 in exec) echo using exe exec /2sh ;; source) echo using source /2sh ;; ) echo using fork by default /2sh ;; esac echo PID for 1sh after exec/source/fork:$$ echo 1sh: /$A is $A 2sh的脚本[sql]#!/bin/bash echo PID for 2sh: $$ echo 2sh get /$A=$A from 1sh A=C export A echo 2sh: /$A is $A 3 实验31 fork[sql]
用ShellExecuteExW API传SHELLEXECUTEINFOW结构体的值来启动应用程序GetProcessId(ShExecInfohProcess);
就能获取启动应用程序的PID了。
首先脚本命令必须能够接收标准输入流命令。管道数据来自stdin,直接用变量接收即可:
cmdresult=`cat /dev/stdin`
也可以用数组和read循环读出来:
declare -a cmdresult
i=0
while read cmdresult[$i]
do
echo ${cmdresult[$i]}
let i+=1
done
uWSGI 通过 xxxini 启动后会在相同目录下生成一个 xxxpid 的文件,里面只有一行内容是 uWSGI 的主进程的进程号。
启动:
uwsgi --ini xxxini
重启:
uwsgi --reload xxxpid
停止:
uwsgi --stop xxxpid
以上是当前网上对于uwsgi重启 *** 作的最常见的描述,但是笔者通过ini文件启动时发现并没有生成xxxpid文件。于是自然的想法是通过shell脚本获取进程号并进行kill *** 作,脚本如下:
获取进程号的命令需要包含在``或$()之间,笔者在此过程中遇到过两个问题,描述如下:
中变量未加双引号,加上双引号该问题解决。
ps aux|awk '{if($8=="X"||$8=="T"||$8=="Z") {flag=1;print}}END{if(flag==0)print "Process is running normally"}'
以上就是关于编写一个shell脚本程序.功能是输入一个数字,给出系统中以该数字为pid的进程详情,并输出到一个文件里全部的内容,包括:编写一个shell脚本程序.功能是输入一个数字,给出系统中以该数字为pid的进程详情,并输出到一个文件里、exec后如何获取子进程pid、如何获取打开文件的进程的pid等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)