例如 ps -C NeMaC -f 可以列出所有以NeMaC為conmand的信息,但是 如果我給NeMaC的參數不同,用上述指令會列出所有NeMaC命令執行的信息 但是我只想獲取其中ture command為 NeMaC -c 30 -m 25000 -r rules.sample 202.101.0.1 private執行後的PID值,我該如何? 我用的是redhat fc3。謝謝 |
![]() :?: |
![]() pidof your_script_path/script_name |
![]() pidof NeMaC 還是得到了兩個PID值,因為我同時使用了兩個NeMaC命令(在不同命令窗口輸入) 一條是NeMaC -c 30 -m 25000 -r rules.sample 202.101.0.1 private rule1 一條是NeMaC -c 120 -m 25000 -r cs2.rules 202.101.0.1 private rule2 但是我只想用命令的方式得到第二條命令執行後的pid值,怎麼辦??? 謝謝,另外,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 12815,確不讓我kill,氣死我了。如何是好呢??? |
![]() myNeMaC=`ps -C NeMaC -f | awk '/myNeMaC1/{print $2}'` |
![]() 是可以得到PID值了,再用 kill -9 $myNeMaC 也可以殺掉進程,但是把上面這些寫入一個.sh文件再執行就出錯了 怎麼辦呢? 移植到RH9後提示的錯誤信息是: [root@gxnunc0504 myCode]# /bin/bash ./killNeMaC1.sh : no such pidsh: line 6: kill: 21820 和先前FC3的類似,其實它不是已經知道我要kill的是PID值為21820的進程了嗎?幹嗎阻止我殺它? |
![]() echo ${myNeMac}看看你拿到多少個pid? 通常都是>=2個 :mrgreen: |
![]() #!/bin/bash # myNeMaC=`ps -C NeMaC -f | grep myNeMaC1 | awk '{print int($2)}'` # echo $myNeMaC kill -9 $myNeMaC 上面就是我殺掉進程的教本killNeMaC1,其中echo $myNeMaC確認只剩下一個PID了,可是為什麼到了kill -9 $myNeMaC就運行不下去了呢。 相關操作和結果如下: [root@ipilot251 myCode]# /bin/bash ./killNeMaC1 : arguments must be process or job IDs |
![]() 問題解決,要使用chmod 755 filename 並且我是用webmin管理得,再編輯文件時記住一定要把那個DOS××前面得勾給點掉。這樣就沒事了。謝謝各位了:) |
![]() pgrep <init_name> |
联系客服