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