我需要grep第三方程序的输出.此程序转储数据但不终止而不按^ c终止它.
我目前正在搜索并使用其pid查杀它.但是,我想知道是否有可能回应控制C字符.伪代码看起来像
echo ^c | ./program_that_does_not_terminate
Run Code Online (Sandbox Code Playgroud)
我可以在DOS中做这样的事情,所以在linux中必须有一种方法.
C:\>echo y | del C:\tmp\*
C:\tmp\*, Are you sure (Y/N)? y
C:\>
Run Code Online (Sandbox Code Playgroud) 我正在使用NSTask执行一系列长时间运行的命令,如下所示:
commandToRun = @"command 1;command2";
NSArray *arguments = [NSArray arrayWithObjects:
@"-c",
commandToRun,
nil];
self.task = [[NSTask alloc] init];
[self.task setLaunchPath: @"/bin/sh"];
[self.task setArguments: arguments];
[self.task launch];
Run Code Online (Sandbox Code Playgroud)
这将为shell创建一个进程,并为当时正在运行的任何命令创建子进程(命令1或命令2).如果我用[self.task terminate]它杀死任务只会杀死父进程.有没有办法识别和杀死孩子?