微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何终止与sudo运行的进程? 按Ctrl + C做,但不杀

在我的公司,一些命令可以使用sudo运行,比如tcpdump。 其他没有。

我期望运行tcpdump一段时间,然后停止它。 当我运行tcpdump时,我可以用Ctrl + C中止

我写了这样一个shell脚本 –

#!/bin/sh sudo tcpdump -ieth1 -w ~/dump.bin sleep 5 kill -2 $!

它并没有真正的工作。 tcpdump的进程是以root身份运行的,而当前用户一个普通的账户。

如何使用sorting命令列出文件,但不是ls -lrt命令

从几个文件中计数重复

即时获取一个程序的输出作为input

为什么我必须在我的容器中使用bash -l -c?

将string拆分成bash中的数组

我的问题是:有什么办法可以做相当于bash脚本中的Ctrl c?

编辑:

ps:作为我公司的安全策略,我不能以root身份运行kill。

如何在单引号包围的awk语句中使用单引号?

如何grep文本的小错误

检查string是否与指定的date格式相匹配

从arg提供的date计算第二天的date的技术?

bash cron群屏幕

试试tcpdump的-Z选项。 它指示tcpdump删除root权限,并以参数中指定的用户身份运行。

sudo tcpdump -Z $USER -ieth1 -w ~/dump.bin

现在尝试杀死这个过程。

简单地通过sudo运行kill :

sudo kill -2 $!

这样kill过程将有权将信号发送到以root身份运行的进程。

超时命令也会在这么长时间后终止程序。 sudo timeout 5 tcpdump -ieth1 -w ~/dump.bin应该完成与脚本相同的操作。

sudo tcpdump -Z root -w ~/dump.bin -n -i eth0 -G 300 -W 1

G – 超时秒(超时后comman被自动杀死)Z – 删除root并以用户权限运行W – 要保存的号码文件(作为分割文件

sudo tcpdump -ieth1 -w ~/dump.bin

会阻止你的脚本,你需要把它放到后台

sudo tcpdump -ieth1 -w ~/dump.bin &

这和Blagovest的答案应该做到这一点。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐