NSTask を介して生成された openvpn タスクを終了しようとしています。
私の質問:
NSTask の入力 NSPipe にctrl+ (SIGINT)を送信する必要がありますか?c
inputPipe = [NSPipe pipe];
taskInput = [inputPipe fileHandleForWriting];
NSString dataString = @"\cC";
[taskInput writeData:[dataString dataUsingEncoding: [NSString defaultCStringEncoding]]];
または、 kill( pid, SIGINT ); の使用を考えていました。ただし、プロセス ID を迂回して決定する必要があるため ([task processIdentifier] はここでは役に立ちません)、はるかに複雑になります。元の NSTask 呼び出しは次のとおりです。
/bin/bash -c sudo -S | mypassword ....
それは良くありません、私は知っていますが、それは一度だけ呼び出され、その場合は sudo パスワードがすでに入力されています。