回答
为此,我将进入
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. 如何在Emacs中运行sudo命令?
- 2. 用sudo运行命令
- 3. 使用sudo运行命令并进入根(sudo -i)并运行命令
- 4. 从Node.js的运行命令使用sudo
- 5. 如何在Makefile中获得make命令的pid?
- 6. 运行sudo命令通过ssh
- 7. tox在sudo中运行python命令
- 8. PHP:运行linux命令为sudo?
- 9. 启动时运行sudo命令,OSX
- 10. capistrano使用sudo运行内部命令
- 11. 如何创建的Automator动作来运行sudo命令
- 12. 如何在没有sudo的情况下运行命令?
- 13. 如何在bash中找到运行命令的PID?
- 14. 如何从applescript运行sudo终端命令?
- 15. 如何以root身份运行sudo命令?
- 16. 如何使用sudo命令通过for循环运行脚本
- 17. 如何使用pysftp模块以sudo权限运行命令
- 18. 如何在sudo中运行两个命令?
- 19. 如何实现sudo su - <user>并运行全部命令
- 20. 如何运行系统命令,并将PID传递给pidfile?
- 21. Java和sudo命令执行
- 22. 如何在sudo命令后执行多个命令
- 23. 如何执行sudo命令与蚂蚁sshexec
- 24. TASM如何获得命令行参数?
- 25. 如何获得-r对OSX命令行
- 26. 在没有sudo的命令行中运行节点
- 27. 如何获得当我们运行命令
- 28. 如何运行Splunk stats命令来获得答案
- 29. 如何运行命令行
- 30. 如何找到dash-exec命令的PID
不会 “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