如果我给NeMaC的参数不同,用上述指令会列出所有NeMaC命令执行的信息
但是我只想获取其中ture command为
还是得到了两个PID值,因为我同时使用了两个NeMaC命令(在不同命令窗口输入)
一条是NeMaC -c 30 -m 25000 -r rulessample 20210101 private rule1
一条是NeMaC -c 120 -m 25000 -r cs2rules 20210101 private rule2
谢谢,另外,NeMaC是NeTraMet这个分析流的工具的一个组件。学习中分成两个脚本执行请教中,如何用两脚本,要是对应NeMaC有N个进程呢?那又该如何是好换一个思路吧,我如何能得到一个进程的唯一子进程的pid?:用
ps -C NeMaC -f | grep rule1 | awk '{print $2}'
我已经能拿到想要kill的进程的pid了,其值例如为:12815
但是当我执行如下shell文件时确出错了
#!/bin/bash#PATH="$PATH":/home/gwei/myCode#myNeMaC=`ps -C NeMaC -f | grep myNeMaC1 | awk '{print $2}'`
kill -9 $myNeMaC它显示出来的错误信息是
: arguments must be process or job IDskill: 12815
kill -9 $myNeMaC
也可以杀掉进程,但是把上面这些写入一个sh文件再执行就出错了怎麼办呢?移植到RH9後提示的错误信息是:
[root@gxnunc0504 myCode]# /bin/bash /killNeMaC1sh
: no such pidsh: line 6: kill: 21820
kill -9 $myNeMaC
上面就是我杀掉进程的教本killNeMaC1,其中echo $myNeMaC确认只剩下一个PID了,可是为什麼到了kill -9 $myNeMaC就运行不下去了呢。相关 *** 作和结果如下:
PID(Process ID) *** 作系统里指进程ID号,也就是进程标识符。 *** 作系统里每打开一个程序都会创建一个进程ID,即PID。
PID(进程控制符)英文全称为Process Identifier,它也属于电工电子类技术术语。
PID是各进程的代号,每个进程有唯一的PID编号。它是进程运行时系统随机分配的,并不代表专门的进程。在运行时PID是不会改变标识符的,但是你终止程序后再运行PID标识符就会被系统回收,就可能会被继续分配给新运行的程序。
含义
只要运行一程序,系统会自动分配一个标识!
是暂时唯一:进程中止后,这个号码就会被回收,并可能被分配给另一个新进程。
只要没有成功运行其他程序,这个pid会继续分配给当前要运行的程序!
如果成功运行一个程序,然后再运行别的程序时,系统会自动分配另一个pid!
PID值越小越好。
记得某unix教程上说的system(2)函数也是fork(2)和execl(2)的组合(也许是我想当然了,但确实能这样实现)。
也就是说system是在子进程中执行的,等同于if (fork() == 0) {execl()}了,子进程的状态,当然可以通过waitpid来得到。
以上就是关于如何获取一条命令执行中的PID值全部的内容,包括:如何获取一条命令执行中的PID值、java jconsole的pid是什么、子进程中如何获得system执行的PID等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)