在我的公司,一些命令允许使用sudo运行,例如tcpdump。其他人没有。我希望运行tcpdump一段时间,然后停止它。当我运行tcpdump时,我可以使用Ctrl+C中止它我写了一个这样的shell脚本-#!/bin/shsudotcpdump-ieth1-w~/dump.binsleep5kill-2$!这真的不行。tcpdump进程以root身份运行,当前用户为普通账号。我的问题是:有什么方法可以在bash脚本中执行相当于ctrlc的操作吗?编辑:ps:作为我公司的安全政策,我不能以root身份运行kill。 最佳答案 尝试-
我正在尝试向Django开发服务器发送信号以终止父进程和子进程。$pythonmanage.pyrunserverValidatingmodels...0errorsfoundDjangoversion1.4.1,usingsettings'myproject.settings'Developmentserverisrunningathttp://127.0.0.1:8000/QuittheserverwithCONTROL-C.$psaxf26077pts/12Ss0:00\_-bash4189pts/12S+0:00|\_pythonmanage.pyrunserver4194pt
我在构建服务器上遇到间歇性问题,其中构建中的Java进程以某种方式无法终止并且似乎永远继续运行(使用100%的CPU)(我已经看到它运行了2天以上)周末通常需要大约10分钟)。kill-9pid似乎是停止进程的唯一方法。我试过在进程上调用kill-QUITpid,但它似乎没有产生任何到STDOUT的堆栈跟踪(也许它没有响应信号?)。不带-Fforce选项的jstack似乎无法连接到正在运行的JVM,但使用force选项时它确实会产生下面的输出。不幸的是,即使有了那个堆栈跟踪,我也看不到任何明显的进一步调查路径。据我所知,它显示了两个运行Object.wait的“BLOCKED”线程(它
该问题适用于如下脚本:脚本#!/bin/shSRC="/tmp/my-server-logs"echo"STARTINGGREPJOBS..."forfin`find${SRC}-name'*log*2011*'|sort--reverse`do(OUT=`nicegrep-ci-E"${1}""${f}"`if["${OUT}"!="0"]thenprintf'%7s:%s\n'"${OUT}""${f}"elseprintf'%7s%s\n'"(none)""${f}"fi)&doneecho"WAITING..."waitecho"FINISHED!"当前行为在控制台中按Ctrl
我使用一个调试脚本,它与调试器一起连续运行几个相关进程。我目前正在使用-x自动执行多个命令(例如run)。如何让gdb在被调试的进程成功终止时自动退出?在命令文件中添加一个quit命令将导致该命令不仅在成功终止时被处理,而且当错误也发生时(那时我宁愿接管)。这是正在发生的事情的摘录:+gdb-return-child-result-xgdbbatch--args./mkfs.cpfs/dev/loop0GNUgdb(GDB)7.1-ubuntuReadingsymbolsfrom/home/matt/cpfs/mkfs.cpfs...done.Programexitednormally
脚本1.sh:#!/bin/bash./script2.shechoafter-script脚本2.sh:#!/bin/bashfunctionhandler{exit130}traphandlerSIGINTwhiletrue;dotrue;done当我从终端启动script1.sh,然后使用Ctrl+C将SIGINT发送到它的进程组时,信号被script2.sh捕获并且当script2.sh终止时,script1.sh打印“after-script”。但是,我希望script1.sh在调用script2.sh的行之后立即终止。为什么在这个例子中不是这样?补充说明(编辑):由于scr
我在有效关闭php-fpm时遇到了挑战;并非所有进程都停止运行,因此php-fpm不会按预期重新启动。我想要运行一个命令行来终止所有php-fpm进程,这样我就可以将它添加到init.d中,这样一来,停止就会确保它们都已完成已删除。下面是ps-aux|的结果grepphp-fpm;7931029710.00.145203045868?S13:200:00php-fpm:pooltokyodating.co7941029720.00.145203045868?S13:200:00php-fpm:poolturkeydating.co7941029730.00.145203045868?S
这个问题在这里已经有了答案:HowtomakeAndroid'saaptandadbworkon64-bitUbuntuwithoutia32-libs(worksforversions12,13and14)(5个答案)关闭4年前。在问这个问题之前,我在Google和SO上都进行了认真的搜索-主要是因为那里的建议都没有解决我的问题!在尝试使我的新Intellij和AndroidSDK在我新安装的Ubuntu13.10上运行失败后,我向您寻求帮助。我知道已经有成千上万的建议,但没有一个对我有用。这是我尝试过的:adbkill-serveradb启动服务器adb设备最后一条命令列出了我的设
这是我现在在bash脚本中的内容:psaux|grepglassfish|grepdomain1|gawk'{print$2}'|xargskill-9问题在于,如果其他人登录并拉取与glassfish相关的内容,它也会拉取该PID。从而导致杀死错误的PID。所以我的问题是如何修复我必须只提取正确的PID,以及如何重写它以从glassfish生成的PID文件中提取PID。 最佳答案 编辑启动glassfish的脚本并放置类似echo$$>/path/to/PID-file的内容(这可以包含用于主目录或其他一些的~像$USER这样的机
我写了一个简单的bash脚本来删除一些与特定模式匹配的临时文件:#!/bin/bashcd~/some_project/some_dirrm*/*.xml我已将其保存为“脚本”,并通过终端将其更改为+x。现在当我双击这个文件时,我可以选择在终端中运行它或显示它的输出。如果我单击“在终端中运行”,脚本会正常运行,但终端窗口会立即关闭。我宁愿窗口保持打开状态,这样我就可以查看是否有任何错误(如果可能的话,可能会让rm显示已删除文件的名称)。我正在寻找一种简单的方法来防止终端在按键发生之前关闭。有这样的方法吗? 最佳答案 将read命令添