0

好的,这是我的代码..

tid 的返回值通常是实际 pid 的 2-3 左右。试图弄清楚为什么它不会给我确切的 pid,这让我发疯。

所以当我试图杀死进程时,它不会杀死,我想我可以写一个来做 ps -u | grep ssh vars 特定于这个过程,但我不应该有。有任何想法吗?

编辑这里是粘贴的实际代码

- (void)startService {
 NSString *temp = @"-D 8080 user@127.0.0.1 -N";
 task = [[NSTask alloc] init];
 [task setLaunchPath: @"/usr/bin/ssh"];
 [task setArguments: [temp componentsSeparatedByString:@" "]];
 NSPipe *input = [NSPipe pipe];
 [task setStandardInput: input];
 [task launch];

 int tid = [task processIdentifier];
 NSLog(@"Starting task: %i", tid);
}

- (void)stopService {
 if ([self isRunning]) {
      int tid;
      tid = [task processIdentifier];
      running = false;
      [task terminate];
      NSString *killTask = [NSString stringWithFormat:@"/bin/kill -KILL %i", tid];
      //NSLog(@"Attepting to KILL: %i", tid);
      system([killTask cStringUsingEncoding:NSASCIIStringEncoding]);
      //[task ];
 }
}
4

0 回答 0