我想在一段时间后自动杀死一个命令.我记得这样的界面:
% constrain 300 ./foo args
Run Code Online (Sandbox Code Playgroud)
哪个会用"args"运行"./foo"但如果它在5分钟后仍在运行则会自动终止它.
将该想法概括为其他约束可能是有用的,例如如果它使用过多内存则自动填充进程.
是否有任何现有的工具可以做到这一点,或者有人写过这样的东西?
补充:Jonathan的解决方案正是我的想法,它在linux上的功能就像一个魅力,但我不能让它在Mac OSX上运行.我摆脱了SIGRTMIN,它让它编译得很好,但信号不会被发送到子进程.有人知道如何在Mac上完成这项工作吗?
[补充:请注意,Jonathan可以在Mac和其他地方使用更新.]
我正在寻找一种通用的方法来启动然后杀死一个R进程,包括它可能调用的所有分支或其他进程.
例如,用户运行如下脚本:
library(multicore);
for(i in 1:3) parallel(foo <- "bar");
for(i in 1:3) system("sleep 300", wait=FALSE);
for(i in 1:3) system("sleep 300&");
q("no")
Run Code Online (Sandbox Code Playgroud)
用户退出R会话后,子进程仍在运行:
jeroen@jeroen-ubuntu:~$ ps -ef | grep R
jeroen 4469 1 0 16:38 pts/1 00:00:00 /usr/lib/R/bin/exec/R
jeroen 4470 1 0 16:38 pts/1 00:00:00 /usr/lib/R/bin/exec/R
jeroen 4471 1 0 16:38 pts/1 00:00:00 /usr/lib/R/bin/exec/R
jeroen 4502 4195 0 16:39 pts/1 00:00:00 grep --color=auto R
jeroen@jeroen-ubuntu:~$ ps -ef | grep "sleep"
jeroen 4473 1 0 16:38 pts/1 00:00:00 sleep 300
jeroen 4475 1 …Run Code Online (Sandbox Code Playgroud) 我需要测试至少130个IP地址和端口.我希望编写一个bash脚本,以便从输入文件中读取ip地址和端口.
我有以下内容
while read line
do
telnet $line >> $2
done < $1
Run Code Online (Sandbox Code Playgroud)
这是一个糟糕的代码,因为它无法确定它是连接还是失败,我必须依靠其自动转义字符断开连接.
我怎样才能即兴发布这样的状态,以便快速更新$ 2状态?我正在使用Redhat,没有netcat或期望安装..
我有一个包含以下代码的shell脚本;
#!/bin/bash
nfcapd -z -w -t30 -p 2055 -l /home/shane/Documents/nfdump
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我执行shell脚本,上面的命令执行一遍又一遍(它捕获网络流量从路由器),但我想它在30秒后停止.在终端我只按Ctrl+ c,有一种方法在一定时间t后执行这个命令(Ctrl+ c)吗?