回答
爲此,我將進入
sudo gvim &
ps aux | grep gvim
提供我下面的輸出
root 11803 0.0 0.0 12064 2776 pts/3 T 12:17 0:00 sudo gvim
只搶將PID我寧願用awk
ps aux | awk '/gvim/ {print $2}'
這將簡單地返回
我會殺從awk
程序以及通過管道一殺命令bash
ps aux | awk '/gvim/ {print "sudo kill -9 "$2}' | bash
如果有其他gvim進程同時運行,這會給你更多的答案。 – 2012-02-16 17:56:20
是的,當我回答這個問題時,他對原始問題的評論沒有寫出來。當我有更多的時間時,我會修改我的答案。 – matchew 2012-02-16 18:15:54
您可以使用$!
獲得最後的後臺進程的PID(這將是在這種情況下,須藤),並ps --ppid
以瞭解它的孩子。因此,例如:
$ sudo tcpdump -i eth0 port 80 -w eth0.pcap &
$ ps --ppid $! -o pid=
16772
$ ps --pid 16772
PID TTY TIME CMD
16772 pts/3 00:00:00 tcpdump
如果你在一個腳本這樣做,你可能想使用一個sudo
和ps
之間sleep 1
的,以確保兒童得到啓動。
請注意,如果您確實必須使用-b
標誌進行sudo操作,則此操作將不起作用,因爲這會導致sudo執行額外的分支並立即退出,從而失去子父項之間的連接(tcpdump命令將獲得重新初始化爲初始化),這意味着您將沒有簡單的方法將孩子與其他任何類似的命令區分開來。
-o
選項爲ps
可讓您選擇要顯示的字段。在這些字段中,您可以顯示諸如累積cpu時間(cputime
),已用時間(etime
)和開始時間(lstart
)之類的信息。您也可以使用--sort
對字段進行排序。所以,你的解決方案可能是:
ps -eo pid,command,lstart --sort lstart | grep 'sudo -b tcpdump' | tail -1
你甚至都不需要告訴ps
顯示要作爲排序依據的領域。 man ps
瞭解更多詳情。
下面是做這件事:
sudo -u username sh -c "echo \$\$ > /tmp/my_pid/file; exec my_command" &
這裏其他的答案依靠grepping ps的輸出。如果有多個tcpdump命令在運行,您可能會意外地grep錯誤的pid。這會得到實際的pid並將其放入一個文件中。
下面是運行的tcpdump作爲root例如:
$ sudo -u root sh -c "echo \$\$ > /tmp/tcpdump.pid; exec tcpdump -i en3 -w eth0.pcap" &
[1] 37201
tcpdump: listening on en3, link-type EN10MB (Ethernet), capture size 65535 bytes
$ sudo kill `cat /tmp/tcpdump.pid`
6212 packets captured
6243 packets received by filter
0 packets dropped by kernel
[1]+ Done sudo -u root sh -c "echo \$\$ > /tmp/tcpdump.pid; exec tcpdump -i en3 -w eth0.pcap"
$
- 1. 如何獲得管道命令的pid?
- 2. 如何獲得與系統運行進程的PID()在C++中命令
- 3. 如何在Emacs中運行sudo命令?
- 4. 如何找出誰運行sudo命令?
- 5. 用sudo運行命令
- 6. 無sudo運行命令
- 7. LINUX如何獲得非運行PID-s?
- 8. 使用sudo運行命令並進入根(sudo -i)並運行命令
- 9. 如何獲得與nuget.exe命令行
- 10. 從R運行sudo的系統命令?
- 11. 從Node.js的運行命令使用sudo
- 12. 如何獲得命令行
- 13. 如何在Makefile中獲得make命令的pid?
- 14. 運行sudo命令通過ssh
- 15. 從PHP腳本運行「sudo」命令?
- 16. PHP:運行linux命令爲sudo?
- 17. 通過CGI運行sudo命令(Python)
- 18. 在Haskell中運行sudo命令
- 19. 在Qt QProcess中運行sudo命令
- 20. 在ec2實例上運行sudo命令
- 21. 錯誤運行命令sudo時,在Ubuntu
- 22. capistrano使用sudo運行內部命令
- 23. 啓動時運行sudo命令,OSX
- 24. tox在sudo中運行python命令
- 25. 獲得由系統api執行的pid命令調用
- 26. 如何運行使用Capistrano V3需要sudo的命令?
- 27. 如何在沒有sudo的情況下運行命令?
- 28. 如何創建的Automator動作來運行sudo命令
- 29. 如何從java程序運行沒有密碼的sudo命令?
- 30. sudo命令行爲與報價
不會 「PS -ef」 辦呢? – 2012-02-16 17:21:14
我正在運行幾個tcpdump命令,所以我想做點像$!(最後一個命令pid)。 – user87005 2012-02-16 17:25:09
'ps aux | grep sudo |尾巴-n 1'不會工作? – khachik 2012-02-16 17:34:20