回答
为此,我将进入
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